优化探查器设置

Visual Studio 中的“性能探查器”和“诊断工具”窗口有许多不同的设置,这些设置会影响工具的总体性能。 更改某些设置可能会导致分析快速运行,也可能会在工具中处理结果时造成额外的等待时间。 下面汇总了特定设置及其对性能的影响。

符号设置

调试程序选项中的符号设置(“调试”>“选项”>“符号”或“工具”>“选项”>“调试”>“符号”)对工具中生成结果所需的时间有显著影响。 启用符号服务器或使用 _NT_SYMBOL_PATH 会导致探查器为报表中加载的每个模块请求符号。 目前,探查器始终自动加载所有符号,而不管自动符号加载首选项是什么。

Symbol loading page

可以在“诊断工具”标题下的“输出”窗口中查看符号加载进度。

Symbol loading progress

下载后,符号就会进行缓存,这将加快以后的分析,但仍需要加载和分析文件。 如果符号加载减慢了分析速度,请尝试禁用符号服务器,并清除符号缓存。 转为依赖在本地为你的项目生成的符号。

显示外部代码

“性能探查器”和“诊断工具”窗口中的许多工具都有用户代码与外部代码的概念。 用户代码是由打开的解决方案或打开的工作区生成的任何代码。 外部代码就是除此以外的其他任何代码。 通过保持禁用“显示外部代码”设置,或保持启用“仅显示我的代码”,可以让工具将外部代码聚合到单一的一级框架中,从而大大减少显示结果所需的处理量。 这样,用户就可以查看外部代码中调用了什么导致速度变慢,同时将要处理的数据降到最低。 尽可能保持禁用“显示外部代码”,并确保已为正在分析的 diagsession 打开了解决方案或工作区。

跟踪持续时间

分析较短的持续时间会产生较少的数据,从而加快分析。 通常建议尝试将跟踪的性能数据限制为不超过五分钟。 使用某些工具(如 CPU 使用情况工具),可以在工具运行时暂停数据收集,这样可以将收集的数据量限制为您感兴趣的分析场景中。

采样频率

使用某些工具(如 CPU 使用情况工具和 NET 对象分配工具),可以调整采样频率。 增加此采样频率可以更精确地进行度量,但会增加生成的数据量。 通常,最好将此设置保持为默认频率,除非正在调查特定问题。

Diag Hub Properties Page

Diag Hub Properties Page

设置集合文件夹

Visual Studio 探查器使用集合暂存目录来存储性能跟踪,然后再保存或丢弃它们。 默认情况下,探查器使用临时目录。 但是,您可以先打开“诊断工具”窗口(调试> Windows >显示诊断工具),然后选择选择工具>设置>常规>临时目录来指定不同的暂存目录。

Screenshot of profiler scratch directory.