Java 应用在线性能分析和火焰图
2013 年 10 月 2 日
首先,应用启动的时候,要给 java 加上参数:
-XX:+UnlockCommercialFeatures -XX:+FlightRecorder -XX:FlightRecorderOptions=loglevel=info
然后在想开始采样的时候
sudo -u-i jcmd JFR.start filename=/tmp/app.jfr duration=60s
这里可以指定输出的文件路径,和采样时间。
之后可以用
sudo -u-i jcmd JFR.check
来检查采样是不是已经完成了。确认完成后,就可以把 jfr 文件传回本地,用 jmc 来分析了。如果想要生成火焰图,还有这么个工具: https://github.com/chrishantha/jfr-flame-graph
。具体用法可以看文档。大致上,代码拖回来后,
cd jfr-flame-graph install-mc-jars.sh mvn clean install -U
就编译好了。另外还需要 https://github.com/brendangregg/FlameGraph
工具准备好以后,
path/to/jfr-flame-graph/run.sh -f app.jfr -o app.txt cat app.txt | path/to/FlameGraph/flamegraph.pl >app.svg
就能生成一个漂亮的火焰图了。
更多文章请点击http://go2live.cn