火焰图可帮助开发人员识别代码瓶颈并了解代码执行模式,因此我们很高兴地宣布它们现在可以在Appmap扩展名中用于VS Code和Intellij(例如Intellij)。
Flame graphs是层次数据的可视化,为可视化构造的软件的堆栈痕迹而创建的,以便快速准确地识别最常见的代码路径。
在本文中,我探讨了它们的工作原理以及如何与Appmap一起生成和使用它们。
如何读取火焰图
火焰图从底部到顶部读取,从左到右读取,提供了函数执行的整体视图。在此视频中,您可以看到我如何识别耗时的功能并可视化操作序列。
要理解火焰图,我们必须首先了解配色方案。
- 紫色代表
SQL queries
- 蓝色指示执行流中遵循的
classes
,methods
或functions
- 黄色表示
external service calls
(在此视频中不存在) - 蓝绿色是AppMap的名称
您从火焰图中得到的
火焰图揭示了有关应用程序性能的关键见解。图中的每个函数都标记为其相应的执行时间以毫秒或微秒为单位。这种详细的细分使开发人员可以查明长期运行的查询和功能,从而优化代码效率。
放大图表或选择特定函数提供了对呼叫堆栈和执行序列的更深入的了解。例如,演示在主动支持呼叫之前展示了选择器的出现,从而阐明了执行流。这种粒度水平使开发人员可以正面解决复杂的性能问题。
揭示性能问题
通过检查图形,开发人员可以检测常见问题,例如N+1查询,这是应用程序开发中臭名昭著的问题。可视化每个查询或功能持续时间的能力提供了可行的见解,突出了可改进的领域。
火焰图还暴露了长期运行功能对整体性能的影响。尽管某些功能(例如呈现到身体)的功能旨在运行更长的时间,而另一些功能(例如支持服务和回调)应进行优化,以提高效率。该图的执行时间计算提供了全面的概述,确保开发人员可以在最重要的情况下集中精力。
AppMap通过突出显示应用程序中的缺陷来改进火焰图,并向您显示特定缺陷对应用程序的直接影响。不再搜索弄清楚n+1查询发生的地方或运行了多少次!
火焰图,序列图等
今天尝试AppMap,以帮助您确定代码或重构现有代码库的问题。使用我们的新火焰图和序列图视图。我们也有传统的依赖性和追踪视图。
链接
â€下载vscode和Jetbrains的AppMap:https://appmap.io/download
github上的appmap:阿https://github.com/getappmap
♦在Twitter上关注:https://twitter.com/getappmap
ð—加入AppMap Slack:https://appmap.io/slack
â1ùï主阅读AppMap文档:https://appmap.io/docs
ðisthatappmap教程:https://www.youtube.com/@appmap