性能分析中的一项常见任务是确定哪些代码段消耗的 CPU 时间最多。这通常需要对堆栈跟踪进行剖析。Flame 图形的出现改变了我们对这些剖析进行可视化的方式。它能直观地显示应用程序中占用 CPU 最多的部分。本文将介绍如何使用 perf 生成这些火焰图。
yum install -y perf
在我们的示例中,我们将捕获 mysqld 进程 60 秒的性能数据。
perf record -a -g -F99 -p 1685 -- sleep 60
注:1685就是MySQL的进程号
数据捕获后,最初是二进制格式。为了理解这些数据,我们需要将其转换成更可读的格式。
perf script > perf.script
虽然这些数据现在是人类可读的格式,但图表更容易让人类读懂。
shell> git clone https://github.com/brendangregg/FlameGraph
shell>./FlameGraph/stackcollapse-perf.pl perf.script | ./FlameGraph/flamegraph.pl > flamegraph.svg
现在,你可以在自己喜欢的网络浏览器中打开 flamegraph.svg,以交互方式探索图表。
你把perf.script文件上传到GPT上,然后问它哪个函数调用频率高,它会给你回复。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。