Word 中加载项的数量或大小是否存在已知限制?
目前,如果我在 Word 的副本中执行 Application.COMAddIns.Count,我得到 4,其中一个是我写的,另外三个是
WordOptimisingAddin
iManage Word2000 integration (Ver 1.3)
Workshare Add-In For Microsoft Word
它们是 iManage(实际上是 FileSite 8.2)和 WorkShare。最重要的是,在不同的启动目录中有八个模板,每个都有自己的 VBA 项目,因此有大量的自定义代码被加载到 Word 中。
显然,当没有打开文档的 Word 运行副本使用 115MB 的 RAM 时,打开应用程序需要很长时间。
我们似乎主要是在减速而不是彻底崩溃,但我担心如果我们添加更多,那么我们将开始出现大量崩溃。其他人是否意识到 Word 获得太多插件的这些问题?
我更喜欢加载大量加载项的 Excel 阵营,但这是一个可比较的场景。Excel 会出现一些速度下降,因为它们消耗越来越多的内存,但我从未见过它因为它们的数量而崩溃,或者因为它说我已经有太多而无法加载一个。
这更多的是系统内存问题,而不是 Word 可以处理的总加载项数量。您加载到内存中的次数越多,您的速度就越慢。此外,使用 Office 2003 的加载项崩溃保护,如果确定该加载项是 Word 崩溃的原因,Word 将禁用该加载项。我已经多次看到在加载它们的情况下启动 Excel 时发生这种情况。这通常是因为我们自己内部开发的加载项,诚然没有世界上最大的错误陷阱......
当您获得额外的插件时,您应该先在基础级机器上对其进行测试,然后再将其推广到您的生产环境中。有了它,您可以了解加载项消耗的系统资源类型以及它如何与您正在加载的其他加载项一起使用。商业制造商还应向您提供系统要求,以帮助您规划安装,包括内存要求。
如果您发现您的自定义加载项造成了一些问题,那么您确实需要检查您的代码以进行可能的优化。
我认为减速可能是由于将 Office 主互操作程序集 (PIA) 加载到内存中的额外开销,特别是 Visual Studio Tools for Office (VSTO) 运行时。这取决于外接程序开发人员是仅使用 VSTO 还是 COM。它还可能取决于加载项在启动时可能需要加载的任何其他依赖项 (DLL) 和/或必须在关闭时保存的数据。
为了帮助您确定其他加载项是否会进一步影响用户体验,我建议您:
测量现有配置的启动和关闭时间。在系统启动时执行此操作,然后在同一会话期间关闭并重新打开 Word 时再次执行此操作。两个启动时间有显着差异吗?关闭时间呢?
禁用所有加载项。重复 1 中的测试。没有加载项的配置是否提高了性能?
重新启用每个加载项,一次一个,每次重复 1. 中的测试。每个加载项的启动/关闭时间是否相同,或者某些加载项的影响时间是否比其他加载项更大?
上面的测试序列可能看起来很费力,但它应该不到一个小时,并且你应该有足够的信息来回答你的问题。根据启动 Word 时已打开的其他 Office 应用程序,您可能还会看到差异。