主要观点:
- 最好在 1920x1080 或更高分辨率的桌面设备上查看此帖子。
- 火焰图是可视化软件性能的神奇工具,Brendan Gregg 创造了它们,但有一个需注意的点,即会很好地隐藏总体影响较大的小开销。
- 以读取数据库文档并以 JSON 响应返回的常见 CRUD 操作的 Web 工作者为例,理论上消除所有开销可将速度提高 2 倍,但逐个检查和消除开销效率低。
- 要看到这些开销,需自下而上合并堆栈,可使用
--reverse
标志生成不同视图,如flamegraph.pl --reverse raw_input.txt > reversed.svg
,发现应在 Redis 调用上花费时间,可使用客户端缓存消除 80%工作。 - 火焰图通常与采样分析器一起使用,采样分析器能可靠识别较高调用栈的工作,但在较低调用栈时可靠性下降,可通过增加采样率、使用跟踪分析器或手动检查火焰顶部来解决此问题,且这些火焰图在现代浏览器中是交互的,可在原始自上而下的火焰图中搜索“redis”。
关键信息:
- 火焰图工具及创建者 Brendan Gregg。
- 某 Web 工作者的火焰图示例及各部分含义。
- 消除开销的方法及效率。
- 自下而上合并堆栈生成不同视图的方法。
- 采样分析器的局限性及解决办法。
重要细节:
- 提及
py-spy
工具及可获取原始数据生成图形。 - 提到增加采样率、使用跟踪分析器、手动检查火焰顶部等解决采样分析器局限性的方式。
- 强调火焰图在现代浏览器中可交互及可搜索特定内容。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。