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