async-profiler+FlameGraph火焰图进行性能测试心得

火焰图(FlameGraph)是一种用于分析CPU执行时间,发现性能瓶颈的工具。它通过收集一定时间内方法调用的时间比例,生成类似火焰形状的层级图表。本文介绍火焰图的生成过程及分析方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

火焰图FlameGraph是用来统计各个调用栈执行时间,以此发现性能瓶颈的一种工具。火焰图的原理是通过分析一段时间内cpu执行各个方法栈的时间,得出各个方法栈执行时间比例并通过图形化的方式显示出来(其底层原理是通过linux的perf命令得到方法的调用时间比例)。因为最后生成的图片形似火焰而得名。
火焰图是一个分层结构的图片,下层是调用栈,而其上一层是该方法栈所调用的各个子方法栈所执行的时间。直观的讲,如果火焰图中存在平层的峰顶,表示cpu在这段时间内一直执行该方法,也就可能存在性能的瓶颈。
生成火焰图的命令包括两步:
一是使用async-profiler记录方法栈执行情况。命令如下:
nohup ./profiler.sh -d 300 -o collapsed -f /tmp/flame/collapsed.txt 12344 &
-d 300表示记录300秒内的执行情况
-f /tmp/flame/collapsed.txt表示输出数据到指定文件中
12344是进程号

二是基于记录的数据,生成svg图片。命令如下:
./flamegraph.pl --colors=java /tmp/flame/collapsed.txt > collapsed.svg
表示读取/tmp/flame/collapsed.txt的数据生成名为collapsed.svg的图片文件。该图片文件可用chrome打开,速度还是比较快的。(顺便吐槽一下IE,打开中途直接卡死了)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值