2013-11-25 41 views
0

ClickOnce部署的.Net 4.5 WPF应用程序。测试在Windows 7 & Windows Server 2008 R2上运行。内存/ CPU/IO(写入本地数据库)密集型进程需要2台测试机器需要8分钟,而其他机器需要1小时(两台“快速”机器都是较旧的Windows 7机器)。虚拟/物理,32/64位没有区别;其中一台“快速”机器是32位,另一台是64位(两者具有相同的处理器规格,但其中一台“慢”机器也是如此)。 32位机器实际运行速度更快。具有3倍内存和速度更快的处理器以及比“快速”32位机器更多内核的新型64位Windows 7计算机记录了一些最慢的时间。查找影响.Net应用程序性能的Windows设置

该进程的每一部分(创建大量对象,向本地数据库发送插入语句等)在“慢”机器上的时间均匀一致。 IOW,这不是IO与CPU。

快速:

  • 32位,4GB RAM,2X4芯特效
  • 64位,4GB RAM,2X4芯特效

慢速:

  • 32位,4GB RAM,2X4核心特效(唯一真正的差异(例如,不同的硬盘制造商之间的这个和上面的快速之一是该机器有两倍的二级缓存作为快速的一个)
  • 64位,12GB内存,2X6过程(多机测试这些规格他们测试了接近最慢)
  • 64位,4GB RAM,1X2核心PROC(虚拟)
  • 64位,8GB RAM,2X2核心特效(Server 2008 R2中具有更快的SCSI驱动器)

我们这里有一台32位的机器,与“快速”32位机器几乎完全相同。唯一真正的区别(除了例如不同的硬盘制造商之外)是“慢”机器具有两倍于“快”的二级缓存。这台“慢”机器需要一个多小时。因此,似乎肯定它不是硬件问题。

它似乎也不是一些其他运行过程的问题;我看过的东西:

  • Machine.config:从“快”机器复制到“慢”。没有不同。
  • 硬盘驱动器加密:某些机器已启用硬盘加密,有些机器不加密。其中一台“快速”机器缺少加密功能,但是其中一些慢速机器拥有它。
  • 实时病毒防护:大多数机器都在运行(包括“最快”的机器和一些最慢的机器)。
  • 该过程不依赖网络;整个过程是本地的。
  • 页面文件设置:“最快”和“最慢”之一之间的重复设置。
  • 处理器负载平衡:查看处理器负载平衡(仅通过查看任务管理器)。没有明显的区别。
  • 构建平台目标:只做一个X64构建思路,使64位机器运行得更快(也许他们在WOW64上运行应用程序?)。没有不同。使用ManifestModule.GetPEKind验证构建的exe中的差异。
  • 比较名为“OnlineAppQuotaUsageEstimate”的ClickOnce相关值的注册表设置差异。在“慢速”机器上缺乏这个价值,但是当我将它加在“快速”机器上存在的键下时,没有什么区别。似乎没有任何关系。
  • 服务包/补丁:这里的一切都一样。
  • Ran NP Profiler。 “慢速”和“快速”机器之间的区别:“快速”机器运行的线程运行时间较长,但运行繁重的线程所需时间较少。没有单一的线索/方法突出作为罪魁祸首。我注意到的一件事是,文件中的日志条目在慢速机器上需要可测量的时间,但在快速的机器上没有可测量的时间。这导致我仔细检查硬盘和缓存,但除了上面提到的L2差别之外,没有任何区别(较慢的机器具有两倍的缓存速度)。
  • 创建了一个小型控制台应用程序,它执行一些类似的操作(字符串/列表操作,并写入本地数据库)。相同的确切比例结果。

所有迹象表明,在2个“快”机器上有一些与“慢”机器不同的Windows配置。寻找有关这种差异的建议;我不认为有任何一种工具可以指向两台不同的机器并显示不同之处。我无法查看注册表出口差异;他们会有500K。

+1

服务包和补丁怎么样?那是我看的地方。 – Paparazzi

+0

我同意@Blam。另外,也许不同的服务运行?也许可以在程序中添加一些代码,以便在执行过程中的不同点更新日志...也许你可以看到是否有特定的代码区域运行缓慢,也许可以告诉你一些事情......只是随机的想法。祝你好运! –

+0

@Blam:为我尝试过的东西添加了两颗子弹。应该已经提到过了。 – dudeNumber4

回答

0

在“慢”机器上启动NGEN服务。这是一个Windows服务。

+0

研究了NGEN,尝试了这种方法(http://stackoverflow.com/questions/443955/is-it-possible-to-use-ngen-with-clickonce-deployment),什么都没有。使用NGEN从命令行手动安装应用程序,看到它做的事情,什么都没有。好的建议,但。顺便说一句,这不是一个你只能开始的服务(它只会关闭)。 – dudeNumber4

相关问题