首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >清除安装和编译性能问题

清除安装和编译性能问题
EN

Stack Overflow用户
提问于 2016-09-29 11:11:22
回答 1查看 127关注 0票数 0

问题

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

我已经尝试过的

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

  • 禁用在windows中运行的任何冗余/不需要的服务
  • 重新安装VS 2015企业
  • 删除%temp%中的所有内容
  • 删除“C:\Windows\预取”中的所有内容
  • 尝试在与我通常的项目不同的物理驱动器上使用全新的控制台应用程序项目进行编译。
  • 禁用Windows (没有安装其他防火墙/ AV ):http://ardalis.com/speed-up-visual-studio-build-times
  • 建议(选项似乎在C#项目中不可见):visual studio 2015 build takes long time
  • 增加最大并行项目(每25秒编译n个项目,而不是每25秒1),其他设置没有影响:http://www.codeproject.com/Tips/1042975/Tips-to-Improve-Visual-Studio-Build-Performance

一些关键的观察

  • 这个问题似乎只影响到VS。
  • cpu、ram、磁盘和网络的资源利用率很低。
  • PC规格相当高(6代i7,SSD,16 gen ram)

更新

我通过电子邮件与微软的一些人交谈,他们缩小到了VS在构建过程中使用的"roslyn编译器服务器“(我自己也不完全理解全部细节)。

它的长短在于,您可以通过使用"Developer提示符“来找出是否存在相同的问题。

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

代码语言:javascript
运行
复制
--- 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

。。Microsoft指出,最后一行是这里的关键,VS中的“编译器服务器”似乎正在做一些它不应该做的事情,因此没有正确地响应构建过程请求,从而导致了这种延迟。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-03 16:24:32

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

超时的发生可能是因为编译器服务由于某种原因而死,因此,如果您在文件"C:\Program (x86)\MSBuild\14.0\bin\VBCSCompiler.exe“运行时打开它,您很可能会得到一个异常,并阅读它将更多地告诉您问题的确切原因。

感谢Jared Parsons @ Microsoft提供的这一关键信息:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39768674

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档