c# - 为什么 Excel VSTO 插件在更高规范的机器上运行得更慢?

标签 c# performance excel vsto

我使用 VSTO 和 VS 2008 在 C# 中开发了一个 Excel 2003 插件。该插件在我的机器(HP NC6320 笔记本电脑,3gb RAM T5600 1.8ghz Core2 cpu)上运行良好,但是当它在其他用户上测试时机器(HP nc6710b 笔记本电脑 2gb RAM,T7200 2ghz Core2 cpu),速度要慢得多。我也在另一台和我同型号的笔记本电脑上试过,速度也很快

我经历过一些显而易见的事情,比如应用程序运行、防病毒等。机器都打好了补丁,而且是最新的。

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

最慢的是工作表上的显示。

我很困惑为什么它在较新的机器上会变慢。为了真正让自己感到困惑,我在具有 256mb RAM 和 1 个 cpu 的 VM (VMware Workstation v6.5) 上尝试了它,运行 xp 和它只安装了 Office 2003,而且比新笔记本电脑快得多。

总而言之,Excel 插件在低规范 VM 和旧笔记本电脑上执行速度很快,但在新规范笔记本电脑上执行速度较慢。

如有任何建议,我们将不胜感激?

非常感谢

尼克

编辑:

好的, 我检查了打印机驱动程序,它们是一样的... 我检查了碎片级别,如果有的话,速度更快的机器比速度慢的机器碎片更少。

正在查看事件设置..

最佳答案

还可以添加

Application.EnableEvents = False  

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

关于c# - 为什么 Excel VSTO 插件在更高规范的机器上运行得更慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/704491/

相关文章:

excel - 如果没有找到与搜索值匹配的行

c# - 我可以用另一个线程检测挂起的进程并从中恢复吗?

c# - 我应该使用什么来代替 OnMouseXXX 事件处理程序?

c# - 不支持每种类型的多个对象集?

用于标准偏差的 python c 扩展

java - 字符串到 int 或 int 到字符串 : which is faster?

excel - 碧 Jade 报告 : footer field in xls participate in sorting

excel - 使用不同的 Excel 文件绘制图形

c# - 在 datagridview 中下拉 Combobox

c# - 如何显示图片目录中的图片?