清理安装VS编译性能问题

时间:2016-09-29 11:11:22

标签: performance visual-studio compilation

问题

VS甚至需要25秒来编译一个全新的未经编辑的空控制台应用程序项目

Screenshot of compile problem

我尝试了什么

我最近注意到了这个性能问题,但我不确定它何时开始,所以为了安全起见,我采取了以下措施......

一些重要的观察

  • 问题似乎只影响VS
  • cpu,ram,磁盘和网络的资源使用率很低
  • PC规格相当高(第6代i7,SSD,16GB内存)

更新

我通过电子邮件与一些微软人员谈话,他们已经缩小到VS用于在构建过程中以某种方式进行“共享资源”的“roslyn编译器服务器”(我不完全了解完整的详情我自己)

通过使用“开发人员命令提示符”,你可以弄清楚是否有同样的问题......

enter image description here

...第一行设置一个环境变量告诉roslyn将其活动记录到文件中,这对我来说是产生的......

--- PID=8144 TID=9 Ticks=17865781: CommandLine = ' /noconfig'
--- PID=8144 TID=9 Ticks=17865781: BuildResponseFile = '/nowarn:1701,1702 /nostdlib+ /platform:anycpu32bitpreferred /errorreport:prompt /warn:4 /define:DEBUG;TRACE /highentropyva+ /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2\Microsoft.CSharp.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2\mscorlib.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2\System.Core.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2\System.Data.DataSetExtensions.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2\System.Data.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2\System.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2\System.Net.Http.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2\System.Xml.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2\System.Xml.Linq.dll" /debug+ /debug:full /filealign:512 /optimize- /out:obj\Debug\ConsoleApplication1.exe /ruleset:"C:\Program Files (x86)\Microsoft Visual Studio 14.0\Team Tools\Static Analysis Tools\\Rule Sets\MinimumRecommendedRules.ruleset" /subsystemversion:6.00 /target:exe /utf8output Program.cs Properties\AssemblyInfo.cs "C:\Users\PaulW\AppData\Local\Temp\.NETFramework,Version=v4.5.2.AssemblyAttributes.cs"'
--- PID=8144 TID=9 Ticks=17865781: Attempting to create process 'C:\Program Files (x86)\MSBuild\14.0\bin\VBCSCompiler.exe'
--- PID=8144 TID=9 Ticks=17865781: Successfully created process with process id 2080
--- PID=8144 TID=9 Ticks=17865781: Attempt to open named pipe 'PaulW.True.GE6kSCQEbMXsysJ19S0qExhvU5zqX2Bc34kg0RSsgmc'
--- PID=8144 TID=9 Ticks=17865781: Attempt to connect named pipe 'PaulW.True.GE6kSCQEbMXsysJ19S0qExhvU5zqX2Bc34kg0RSsgmc'
--- PID=8144 TID=9 Ticks=17890781: Connecting to server timed out after 20000 ms

..微软注意到最后一行是关键所在,似乎VS中的“编译服务器”正在做一些不应该做的事情,因此没有正确响应构建过程请求导致这种延迟。

1 个答案:

答案 0 :(得分:0)

一般来说,上面的问题是因为roslyn日志中的超时而发生的。

发生超时可能是因为编译器服务由于某种原因而死亡,所以,如果你在运行时打开文件“C:\ Program Files(x86)\ MSBuild \ 14.0 \ bin \ VBCSCompiler.exe”,你可能会得到一个例外,阅读它会告诉你更多关于问题的确切原因的信息。

感谢Jared Parsons @ Microsoft关于此问题的关键信息:)