IDEA 中使用火焰图

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IDEA 中使用火焰图相关的知识,希望对你有一定的参考价值。

参考技术A IntelliJ IDEA 与以下分析工具集成:

选择 【 Run 'xxx' with 'Java Flight Recorder' 】

会出现如下错误:

在 VM options 中添加 -XX:+UnlockCommercialFeatures 参数。

在【Profiler】窗口点击【Stop Profiling and Show Results】

然后就可以看到结果。

F4 调转到源码:

假设 testMethod() 方法执行耗时太长,我们需要排查时间花费在哪里。

排查步骤如下所示:

通过【Flame Graph】可以看出, java.util.Random#nextBytes 调用栈的采样率为 99.43% 。表示 CPU 大部分时间都在执行 java.util.Random#nextBytes 函数。和预期一致!

perf生成火焰图使用简记

引言

perf 是linux提供的一个免费profile工具。
比较全面的一个教程是:brendangregg

perf生成记录

1.生成perf数据:

sudo perf record -g ls

2.读取perf.data,输出trace

sudo perf script -i perf.data > perf.unfold

3.压缩栈
这里用到了火焰图工具:https://github.com/brendangregg/FlameGraph

stackcollapse-perf.pl perf.unfold > perf.folded

4.生成svg文件

flamegraph.pl perf.folded > ls.svg

以上是关于IDEA 中使用火焰图的主要内容,如果未能解决你的问题,请参考以下文章

火焰图(Flame Graphs)

Golang FlameGraph(火焰图)

如何看火焰图?

性能优化必备——火焰图

使用arthas采集火焰图

Arthas生成Kafka火焰图