如果您创建一个针对 Microsoft Office Excel 2003 的简单“Hello World”VSTO2SE 加载项,则在冷启动时加载需要 15 秒。在此期间,Excel 完全没有响应。
Excel 2003的冷启动时间总是很差。我见过一台测试机在Excel 2007中启动时间是即时的,但我所有的其他测试机都需要15秒才能初始化。 (测试环境-windows xp pro + VSTO2SE runtime + XP SP3)
如何提高这种性能?
我已经尝试过但没有成功的事情:
a) 似乎 Office 2003 从不使用 native 程序集。
b) 我的 office 2007 测试客户端启动速度很快,即使使用 IL 程序集也是如此。
c) 即使我 NGEN 整个依赖树,仍然存在可能没有 native 镜像的 VSTO 依赖项。
编辑 - 是的,这是加载项中“连接”事件的唯一行。 (实际上是消息框)。在消息框出现之前需要整整 15 秒。 – J 戴维斯
最佳答案
您将在冷启动时受到打击,因为它必须第一次加载所有程序集。
如果热启动明显更快,那么您唯一真正的选择是
1) 在 Windows 启动时有一个单独的程序加载,并在后台为您的插件加载所有程序集。
2) 尽量减少您使用的程序集数量。当然,您不应该在 Hello World 中使用太多。
3) Excel 启动时预加载所有内容。这会影响 Excel 的启动时间,但会使您的菜单选择更快。您还可以在后台预加载所有内容,以帮助实现这一点。
关于vsto - 如何提高 VSTO2SE MS Office 加载项的冷启动性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/248427/