Tag: 探查器

启动VS Profiler可提升应用程序性能x20?

编辑1 我根本不排除这可能是由于使用Profiler的一些非常基本的副作用(我的“常规”项目中的一些错误设置) 我想在我的应用程序中改进计算时间,所以我决定进行彻底的分析分析。 所以我刚刚启动了.Net内存分配配置文件来分析我的应用程序。 我完全惊呆了,观看计算速度快了20倍 ! 应用程序包括从带有BackgroundWorkers的二进制文件中读取数据,处理它们, 并将结果存储到MSSQL DB中。 每轮通常需要20秒,而分析它几乎需要1秒。 我检查并确保两种情况下结果一致。 一个.Net实验的朋友告诉我,探查器优化了线程并“以某种方式”找到了通过线程锁和瓶颈的方式,但我简直不敢相信。 所以我的问题是: 究竟发生了什么,现在和为什么? 如何使我的代码本机行为? 编辑2 我知道这听起来很疯狂,令人难以置信。 我自己仍然非常怀疑。但它是真的。 在分析器运行时,SAME代码运行得非常快。 我使用SAME测试数据,并观察SAME计算输出。 我无法给出一个简单的复制项目,因为它是一个相对较大的框架。 我正在使用Visual Studio 2010 Profiler。 我将尽可能多地提供关于流程的详细信息,一旦找到它,我肯定会发布一条线索。 定期运行日志: 03/23/2011 18:04:34 | 180434.621 | 模拟集[5] – [1] – [5 PC-1 0 [SET 1/48] 03/23/2011 18:05:01 | 180501.271 | 处理时间:00:00:26.6515244 等等.. Profiler运行LOGS: 03/24/2011 11:38:15 | 113815.592 | 模拟集[5] […]

VS2013:即使从IDE运行,“VSP2340:环境变量也没有正确设置”

我正在从Visual Studio 2013中分析一个C#程序。我转到Analyze – > Performance and Diagnostics来启动向导。 它给了我一个分析方法的选择。 如果我选择默认的CPU采样,那么分析工作,我可以看到结果。 但是,如果我选择第三个选项,即.NET内存分配,那么在我的应用程序完成后,我会在Visual Studio输出窗口中看到空结果和此错误: 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 […]