开始
让我们一起完成最简单的性能分析工作流程。 例如,您有一个应用程序,无论是否存在性能问题。 您只想评估其性能,也就是找出哪些函数耗时最多。
有关如何开始时间线性能分析的详细信息,请参阅 开始使用时间线分析。
有关如何使用 dotTrace 命令行工具的详细信息,请参阅 使用 dotTrace 命令行分析器。
步骤 1。 运行 dotTrace
有几种方法可以开始分析您的应用程序:您可以将 dotTrace 作为独立工具启动,从 Visual Studio 启动,或者作为命令行工具启动(本教程不涉及)。
运行独立版 dotTrace
此模式非常适合于无法获取原始项目或源代码的应用程序,或者当您希望在未安装或启动 Visual Studio 的情况下运行 dotTrace。 我们强烈建议您使用 JetBrains Toolbox 来安装和启动 dotTrace。 要运行独立版 dotTrace:
打开 JetBrains Toolbox。
运行 dotTrace。

从 Visual Studio 运行 dotTrace
运行 Visual Studio。
打开您想要分析的解决方案。
从菜单栏中选择 。

步骤 2。 配置并运行性能分析会话
下一步是配置性能分析属性并运行性能分析会话。
确保在左侧面板中选择了 分析。

现在,您必须添加一个运行配置——该配置告诉 dotTrace 如何运行被分析的应用程序(应用程序可执行文件的路径、命令行参数以及其他设置)。 在 选择您想要分析的内容、 新进程运行 下,点击
添加运行配置。
在 新建运行配置 向导中,首先选择 独立 应用程序,然后点击 下一步。

为应用程序可执行文件指定一个 路径 ,并在需要时指定可执行参数。 点击 保存。

确保选择了创建的运行配置。

在 选择您要如何分析 下,指定分析选项:
指定 分析类型。 这是迄今为止最重要的性能分析选项。 共有四种类型可用:
采样——最快的方法。 它可以精确测量调用时间,但无法获取调用次数的数据。 这种性能分析类型可以让您快速了解应用程序的基本性能。
跟踪——比 采样 慢(因此无法精确测量调用时间),但可以准确测量特定函数被调用的次数。 仅当调用次数很重要时,例如评估算法复杂性时,才使用这种性能分析类型 only。
逐行——最慢的性能分析类型,会为每一行代码插入探针。 逐行性能分析仅在您已经知道哪个函数导致问题并希望分析其每一行时才有意义。 很少使用。
时间线——时间线性能分析类型。 可以将其视为显示在时间线上的采样数据。 您不仅知道特定函数的执行时间,还知道其执行开始和结束的时间点。 这种性能分析类型在一个单独的 教程 中有详细说明。
通常,如果您只需要评估应用程序的整体性能,应该优先选择 采样 性能分析类型。
在 运行分析 下,点击 运行 开始性能分析。 dotTrace 将附加到您的应用程序进程并开始收集性能数据。
步骤 3。 获取快照
一旦您运行了性能分析会话,dotTrace 不仅会运行被分析的应用程序,还会运行“性能分析控制器”。 这是一个独立窗口,用于控制性能分析会话——收集性能快照、从应用程序中分离分析器等。 因此,您的下一步是使用控制器窗口收集性能数据(或者换句话说,获取性能快照)。

操作您的应用程序:运行您想要检查性能的功能,执行特定的使用场景等。
一旦您确定收集的性能数据足够,请在控制器窗口中点击 获取快照并等待。
关闭被分析的应用程序。 这也会关闭控制器窗口。
步骤 4。 分析快照数据
在您关闭被分析的应用程序后,dotTrace 将运行一个单独的应用程序——dotTrace Viewer。 它允许您使用多个工具窗口分析收集的性能数据。
筛选器

筛选器 让您将分析范围限定到特定的子系统或线程。
子系统 向您展示应用程序执行时间在各种组件(用户代码和系统代码、WPF、字符串等)之间的分布。 了解更多关于子系统的信息。
线程 向您展示线程活动。
点击特定的子系统或线程将作为所有其他工具窗口的过滤器。 例如,如果您选择 用户代码, 线程 将仅显示运行用户代码的线程, 调用树 将仅包含用户方法,等等。
过滤器可以组合使用。 例如,如果您选择 用户代码 和 主线程, 调用树 将仅包含在主线程上运行的用户方法。
热点
热点 是一个理想的起点。 此视图显示执行时间最长的函数列表。 使用此视图可以一目了然地找到最慢的函数。

调用树
调用树 向您展示函数的执行路径。 使用它可以快速深入了解实际的应用程序活动:

纯列表
显示一个函数的纯列表。 让您彻底分析特定函数。

源代码视图(仅限 Windows)
请注意,每当您选择一个函数时, 性能查看器 会根据应用程序的调试符号提供的信息显示该函数的实际代码。 如果没有可用的源代码, 性能查看器 将尝试从程序集反编译该函数。
