在发布或调试版本上运行分析工具(C#、Visual Basic、C++、F#)
Visual Studio 提供性能度量和分析工具的选择。 某些工具(如 CPU 使用率和内存使用率)可以在发布版本上运行,也可以在调试应用时运行(调试生成)。 诊断工具窗口中显示的工具 仅在调试会话期间运行。 性能分析器中显示的工具 在没有调试器的情况下运行,通常在发布版本上运行,并在选择停止和收集数据(用于事后分析)后分析结果。
性能探查器和调试器集成的诊断工具提供了不同的信息和体验。 使用诊断工具时,调试器会显示变量值,并允许使用断点。
性能探查器中的发行版本性能数据是最精准的。 这些工具使结果更接近最终用户体验。 通常,这是使用分析工具的首选方法。 但是,在某些情况下,在调试版本中使用调试器可能有助于缩小性能问题的范围,尤其是在想要使用调试器功能(如断点和代码单步执行)时。
若要帮助你决定在发布或调试版本中使用分析工具,请考虑以下事项:
- 发布版本通过内联函数调用和内联常量、精简未使用的代码路径,以及以调试器无法访问的方式存储变量来实现优化。 调试版本中的性能数字不太准确,因为调试生成缺少这些优化。
- 除了发布版本和调试版本之间的差异外,调试器本身还会更改性能时间,因为它执行了必要的调试器操作,例如截获异常和模块加载事件。
- 对于 CPU 密集型调用导致的性能问题,发布和调试版本之间可能存在相当大的性能差异。 检查发布版本中是否存在 CPU 性能问题。
- 外部性能问题(如文件 I/O 或网络响应问题)在发布版本或调试版本中看起来没有什么不同。
- 如果问题仅发生在调试生成中,则可能不需要使用发布版本运行工具。
- 某些工具(如 .NET 对象分配工具)仅在性能探查器(非调试器方案)中可用。
收集发行版本的分析数据
若要在发布版本上收集性能数据,请运行性能探查器工具。
在 Visual Studio 中打开项目后,将解决方案配置设置为 发布,然后选择 本地 Windows 调试器(或 本地计算机)作为部署目标。
选择 调试>性能探查器,或按 Alt+F2。
在诊断工具启动页上,选择要运行的一个或多个工具。 仅显示适用于项目类型、操作系统和编程语言的工具。 选择“显示全部工具”,以便查看那些在此诊断会话中被禁用的工具。
要启动诊断会话,请选择“开始”。
会话运行时,某些工具在诊断工具页上显示实时数据图,并可能显示暂停和恢复数据收集的选项。
要结束诊断会话,请选择“停止收集”。
分析的数据显示在 报表 页上。
有关可用于发布版本的工具以及如何分析报表的详细信息,请参阅:
- 使用 CPU 性能分析工具来分析性能
- 分析内存使用情况
- 分析 .NET 代码的内存使用情况
- 分析仪器数据
- 分析 .NET 计数器
- 分析 .NET 异步代码的性能
- 分析数据库性能
- 查看事件
- 分析 GPU 使用情况
备注
可以按 Alt+F2 或单击“调试”>“性能探查器”,以此使用重新启动跳过启动页,并自动使用以前的设置运行。
(可选)保存报表,然后在诊断工具启动页上的 最近打开的会话 列表中打开报表。
在调试过程中收集分析数据
在 Visual Studio 中,选择 “调试”>启动调试,或按 F5后,默认情况下会显示“诊断工具”窗口。 若要手动打开它,请选择“调试>Windows>显示诊断工具”。 诊断工具 窗口显示有关事件、进程内存、CPU 使用率和 .NET 计数器的信息。
- 使用工具栏中的 设置 图标选择是查看 CPU 使用率、内存使用率还是 .NET 计数器。
在 Visual Studio 中,通过选择调试>启动调试或按下F5开始调试时,默认情况下会显示诊断工具 窗口。 若要手动打开它,请选择“调试>Windows>显示诊断工具”。 诊断工具 窗口显示有关事件、进程内存和 CPU 使用情况的信息。
- 使用工具栏中的“设置” 图标选择是查看 CPU 使用率、内存使用率还是 UI 分析。
在 设置 下拉列表中选择 设置,以打开具有更多选项 诊断工具属性页。
如果运行的是 Visual Studio Enterprise,可以通过 工具>选项>IntelliTrace启用或禁用 IntelliTrace。
诊断会话在停止调试时结束。
有关调试时可用的工具的详细信息,请参阅:
- 通过来分析 CPU 使用率来度量应用程序性能
- 度量 Visual Studio 中的内存使用情况
- 分析 .NET 计数器
“事件”选项卡
在调试会话期间,“诊断工具”窗口的“事件”选项卡列出了发生的诊断事件。 类别前缀 断点、文件等,可让你快速扫描某个类别的列表,或跳过不关心的类别。
通过选择或清除特定类别的事件,使用 筛选器 下拉列表来筛选视图中和视图外的事件。
诊断事件筛选器诊断事件筛选器屏幕截图
使用搜索框在事件列表中查找特定字符串。 下面是匹配三个事件的文件名 模型 的搜索结果:
使用搜索框在事件列表中查找特定字符串。 搜索字符串 名称 的结果如下,这些结果匹配了四个事件:
有关详细信息,请参阅 搜索和筛选“诊断工具”窗口中的“事件”选项卡。
通过命令行收集分析数据
若要从命令行测量性能数据,可以使用 Visual Studio 或远程工具随附的 VSDiagnostics.exe。 这对于在未安装 Visual Studio 的系统上捕获性能跟踪或编写性能跟踪集合的脚本非常有用。 有关详细说明,请参阅在命令行中衡量应用程序性能。