使用火焰图识别热路径(C#、Visual Basic、C++、F#)
用于 CPU 利用率和检测的 Visual Studio 分析工具包括“火焰图”视图。 火焰图通过可视化调用树来帮助你识别代码中的热路径。 热路径 是使用 CPU 最多或时间最多的函数的调用堆栈,通常是查找潜在性能优化的好位置。 该图直观地概述了应用程序中花费的时间,你可以单击特定节点以进一步挖掘它们。
有关如何使用火焰图提高性能的教程,请参阅 案例研究:优化代码初学者指南。 有关 CPU 探查器的信息,请参阅使用 CPU 分析来分析性能。
调查热路径
“火焰图”视图位于 .diagession 报表的详细信息视图中。
使用 CPU 使用率或检测工具启动分析会话。
停止分析会话并加载报表后,请选择“打开详细信息”。
打开详细信息视图
在“当前视图”下拉列表中选择 火焰图。
此时会显示“火焰图”视图。
热路径是在调用树中向下浏览时,使用最多 CPU 或耗费最多时间的代码路径。
默认情况下,火焰图中显示的数据表示与数据收集期间 调用树 视图中所示的数据相同。 具体而言,对于 CPU 使用率,它显示“总 CPU”值。 此值是包容性的,因此它包括调用函数所用的 CPU 使用率(即 CPU 计算时间),以及函数调用的任何其他函数。 同样,对于检测,该图显示与调用树视图中“总计”列等效的值。
但是,如果选择一个节点,所选节点将成为新的基准,并占用 100% 的火焰图宽度。 这样可帮助你更好地可视化复杂的调用树,并在长名称被截断或隐藏时查看这些名称。 下面是显示更复杂的调用树的火焰图示例。
若要查看有关任何节点的详细信息,请选择该节点。
选择“重置缩放 以返回到默认视图。
还可选择一个节点,然后从上下文菜单中选择“调用树中的视图”等选项,导航到分析报告中的不同视图。
翻转火焰图
默认情况下,工具中的火焰图显示为倒置的形式,或者显示为冰柱图,在这种情况下,y 轴从顶部的零开始向下计算堆栈深度。
可以通过单击 翻转火焰图来查看标准火焰图布局。
在火焰图中导航
对于复杂的火焰图,可以通过选择特定元素来缩放可视化效果。
在“火焰图”视图中,可以通过单击带有鼠标的节点或使用键盘进行导航。 此外,还支持以下键盘快捷方式。
键盘快捷键 | 命令 |
---|---|
Tab | 转到任何节点 |
向上/向下箭头 | 转到节点的父级或子级 |
右/左箭头 | 转到堆栈中节点的对应节点 |
Enter | 放大(选择) |
逃跑 | 缩小 |