我从Visual Studio 2013分析C#程序。我去分析 - >性能和诊断来启动向导。它给了我一个分析方法的选择。如果我选择默认的CPU采样,然后分析工作,我可以看到结果。但是,如果我选择了第三个选项,.NET内存分配,那么我的应用程序完成后,我看空的结果,但此错误在Visual Studio输出窗口:VS2013:即使从IDE运行,“VSP2340:环境变量设置不正确”
VSP2340: Environment variables were not properly set during profiling run and managed
symbols may not resolve. Please use vsperfclrenv before profiling
所有我在网上看到的文件显示, vsperfclrenv
适用于独立探查器,并且在直接从Visual Studio运行探查器时不需要。然而,只是为了安全起见,我试图从命令提示符窗口中设置必要的环境变量,然后直接从该窗口中运行的IDE,因此它拿起环境:
C:
cd "\Program Files (x86)\Microsoft Visual Studio 12.0\Team Tools\Performance Tools\x64"
vsperfclrenv /samplegclife /tracegclife /globalsamplegclife /globaltracegclife
"C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe"
然后我去了像以前一样在Visual Studio里面的高性能向导但结果是一样的;我仍然看到VSP2340试图分析结果。我究竟做错了什么?
我注意到向导有四种分析选择:CPU采样,检测,内存分配和资源争用。这与vsperfclrenv
提供的选项并不完全匹配,该选项仅讨论采样和跟踪分析(每个应用程序对应的服务变体;我的程序是一个应用程序而不是服务,但我启用了所有选项只是为了确保) 。
难道是有一些额外的环境变量需要内存分配分析?或者是关于vsperfclrenv
误导的Visual Studio消息?
长列表你重新启动的壳呢?你至少应该从进程管理器中关闭'explorer',关闭进程管理器,再次打开它(通过ctrl + shift + escape),所以它会重新加载evnVars并启动资源管理器。如果听起来太复杂,只需重新启动电脑。 并尝试以管理员身份运行'vsperfclrenv'。并修复Visual Studio安装 – 2015-01-29 21:10:17
或者,您可以尝试JetBrains,RedGate或SciTech内存分析器(最先进的非托管内存) – 2015-01-29 21:11:37