为什么Excel VSTO插件在较高规格的机器上运行速度较慢?

我使用VSTO和VS 2008在C#中开发了一个Excel 2003插件。这个插件在我的机器(HP NC6320笔记本电脑,3GB RAM T5600 1.8ghz Core2 cpu)上工作得很好,但是当在另一个用户机器上testing时nc6710b笔记本电脑2GB内存,T7200 2ghz Core2 CPU),这是相当慢。 我也在另一台笔记本电脑上试过,和我的一样,而且速度也很快

我已经经历了显而易见的事情,例如正在运行的应用程序,防病毒软件等。这些机器都是完整的补丁,并且是最新的。

基本上,外挂的function是:1.从SQL Server 2005数据库读取数据2.对其进行一些操作3.在工作表上显示它,并适当地格式化

慢位是工作表上的显示。

我很难为什么它会在一台较新的机器上变慢。只是为了让自己感到困惑,我尝试了一个虚拟机(VMware Workstation v6.5),内存为256MB,1个CPU,运行XP,只有Office 2003安装在上面,而且比新的笔记本电脑快得多。

总而言之,一个Excel Addin可以在一个低规格的虚拟机上快速执行,而在一台旧的笔记本电脑上执行,而在一台新的规格的笔记本电脑上执行速度会更慢。

任何build议将感激地收到?

非常感谢

缺口

编辑:

好吧,我已经检查过打印机驱动程序,它们是一样的…我检查了碎片级别,如果有的话,速度更快的机器比较慢的碎片更less。

我正在看事件设置

你也可以添加

Application.EnableEvents = False 

在开始将数据转储到电子表格之前停止其他Excel加载项或等待应用程序级别更改/更新事件的任何VBA代码。 完成后不要忘记重新启用事件!

检查慢速机器没有安装任何XLA或COM插件(例如Google Office插件)或Personal.XLS等中的任何其他可能的事件陷印代码

大概你已经做了所有的标准加速的东西,如: – closures自动计算和屏幕更新,然后再写入XL – 在单个大块而不是逐个单元格中写入和格式化单元格…

将办公室更新到最新版本(请参阅Microsoft网站/ Microsoft更新)。

检查已安装的VSTO / PIA的版本…

检查已安装的office / excel插件。

使用分析器来查看哪个呼叫很慢。

有一点我注意到,在更快的电脑和较慢的电脑之间是1GB的RAM。 您是否在应用程序运行时检查了机器上的内存使用情况? 我知道1GB的内存已经取得了一些认真的进步(至less在我的理解中)计算机能够做某事的速度。

我遇到了新的更高规格的笔记本电脑有可怕的硬盘性能。 你也可能有碎片。

检查您在两台机器上configuration的打印机驱动程序。 事实上,要排除这一点,请切换到“基于文件”的驱动程序之一(例如Microsoft XPS)。 我已经有一些问题与Word花了很长时间来做的东西是基于打印机驱动程序和Word的需要检查什么打印机在某些情况下的能力。

如果机器运行的是Vista,你可以进入系统信息(最快的方法是获得Windows键+暂停,不知道如何通过控制面板慢速到达那里)。 它会显示一组五个性能数字:内存性能,硬盘性能,graphics性能等。比较这两个机器上的数字; 这可能是“新”机器有较慢的内存,或较慢的硬盘驱动器。

检查每台机器上有多less文件在%temp%。

是有些机器运行32位操作系统,其他人运行64位操作系统? 混合32位和64位代码会增加开销?