Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance MSBUILD(VS2010)在某些计算机上速度非常慢_Performance_Visual Studio 2010_Msbuild - Fatal编程技术网

Performance MSBUILD(VS2010)在某些计算机上速度非常慢

Performance MSBUILD(VS2010)在某些计算机上速度非常慢,performance,visual-studio-2010,msbuild,Performance,Visual Studio 2010,Msbuild,我有一个很奇怪的 我在我们的开发部门有十几台电脑,它们都面临着同样的问题: 使用msbuild4.0(VS2010)的命令行生成要比应该的慢得多。速度比预期慢4到5倍 所有机器均为HP z400工作站(四核Xeon+超线程,2.4 GHz,6GB RAM) 同时在Win7 X64上运行Windows 7 Pro 64位或HP Elitebook笔记本电脑(Core-i7 4GB RAM)。 如果我选择其中一个安装了Win7的vanilla factory,安装VS2010并进行构建,它们的速度与

我有一个很奇怪的

我在我们的开发部门有十几台电脑,它们都面临着同样的问题: 使用msbuild4.0(VS2010)的命令行生成要比应该的慢得多。速度比预期慢4到5倍

所有机器均为HP z400工作站(四核Xeon+超线程,2.4 GHz,6GB RAM) 同时在Win7 X64上运行Windows 7 Pro 64位或HP Elitebook笔记本电脑(Core-i7 4GB RAM)。 如果我选择其中一个安装了Win7的vanilla factory,安装VS2010并进行构建,它们的速度与预期的一样快。如果我用我们公司的标准软件映像安装它们,那么在同一VS项目中,它们的速度会慢4到5倍

联想笔记本电脑(Core-i5)或台式机(Core-i7)上的相同公司软件映像显示,公司映像与出厂预装Win7之间没有明显差异。 更奇怪的是:如果我在有问题的HP系统上安装带有Win7映像的VirtualBox,那么虚拟机就没有问题

我尝试过的每一个基准测试工具都没有显示出公司形象和预装Win7之间的明显差异。只有msbuild受影响,并且仅在公司映像上运行Win7的HP计算机上受影响

在您提问之前:我已经禁用了公司映像中的所有软件/后台进程,但这没有任何区别。很明显,它不是在后台运行的东西,它以某种方式与msbuild交互。我最好的猜测是,在HP硬件上,某些设置被更改,从而影响msbuild。这在其他硬件上不会发生。 (并且根本没有使用/执行VS2010 GUI。我知道,如果双方都尝试访问相同的解决方案/文件,则这可能会与msbuild交互。防病毒也没有任何区别。)

有人知道什么可能会影响msbuild的速度减慢吗?
任何建议,无论多么牵强,都是受欢迎的。

首先,我假设您没有做任何愚蠢的事情,比如在网络位置或映射驱动器上构建,或重定向“文档”文件夹

下一步是使用任务管理器查看哪些流程正在减慢您的速度。处理器使用率是否为100%?哪些流程是活动的?分页次数多吗(请看“页面错误增量”)?哪些流程

我不得不说这听起来像是杀毒软件。您应该将OBJ、LIB、ILK、PDB和类似文件类型排除在防病毒访问扫描之外

我知道你说“防病毒没有任何区别”,但你还没有确认你已经尝试完全关闭它


另外,请查看可能响应生成活动的搜索索引器、连续备份或类似进程。

从命令行运行MSBuild,并将详细程度设置为diag:

MSBuild mysolution.sln /v:diag

这将生成一个列表,其中包含每个任务花费的时间量。这将为您提供一些信息以供继续。

诊断报告将详细显示MSBuild的工作方式,但并不总是有助于诊断性能问题。尝试运行普通生成,将以下附加选项添加到msbuild命令行:

/ds /clp:performancesummary
这将输出关于节点使用情况的诊断摘要,并且还将详细的性能摘要添加到构建的控制台输出的末尾,显示每个任务运行的时间。如果使用文件记录器,则可以将“performancesummary”选项添加到文件记录器参数的末尾(/flp:…)


另一件需要注意的事情是减少AssemblySearchPaths属性,使其仅使用您在项目中使用的路径,这是我看到的一些构建中出现性能问题的原因。只需在Microsoft.Common.targets中搜索,在所有项目使用的标准导入中重新定义它(您确实有一个,对吧:),然后在导入标准文件之前重新定义它,删除任何您不使用的{…}项。

我自己回答这个问题,因为我发现了问题。 这些计算机都安装了“委托智能安全提供商”软件。(我们公司用于加密邮件处理的证书管理器。)

.NET4(VS2010是在其中编写的)和.NET4代码的编译需要大量的证书检查,而此软件(在此过程中调用get)显然在多核PC上存在问题。事情变得越来越慢

core-i5系统也有这个问题,但不是那么严重。它们仍然可用。 i7和Xeon系统(8核)的速度减慢到几乎无法使用的程度

不幸的是,我无法摆脱这个软件。它是公司授权的软件套件的一部分。 我只希望供应商对此有一个解决方案

编辑:问题已通过第10版的Enterty Intelligence解决。默认情况下,它不再将自己设置为系统中的第一个证书处理程序。
在v9上,需要手动编辑注册表才能将MS处理程序恢复到默认位置。

这才是真正的问题:每个证书检查都首先通过委托DLL,该DLL将队列中的所有内容推送到一个只有一个线程/CPU清空的队列中。然后,它发现不应该处理此证书,并将其交给了Microsoft处理程序。

。此外,您几乎偏离了主题,这会让我牙齿发痒。请尝试将MSBuild输出详细信息更改为diagnostics-它会为您提供有关生成过程中发生的情况的大量信息。您可能会从中获得更多信息。在检查防病毒的性能效果时,仅关闭它是不够的。你必须卸载它。@Ben-为什么要卸载它。我认为,如果它在关闭时不扫描,那么它就等于不在那里?@PeterMularien,它不是真正的马车。这只是一个愚蠢的实现,在多核机器上执行得非常糟糕。适用于所有V9版本和(我听说)早期版本。它在V10及更高版本中已修复。(据我所知,那个可怕的演员