ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

使用火焰图分析Java项目瓶颈

2021-12-08 14:32:33  阅读:219  来源: 互联网

标签:git Java 函数 瓶颈 html profiler 火焰 async


对项目进行性能分析,往往需要查看 CPU 耗时,了解瓶颈在哪里。火焰图(flame graph)是性能分析的利器。

我这里使用的是 async-profiler 这个开源项目,项目地址为: https://github.com/jvm-profiling-tools/async-profiler.git

使用

git clone https://github.com/jvm-profiling-tools/async-profiler.git

cd async-profiler

make

./profiler.sh -d 600 -f profile.html java项目PID

这里就使用 async-profiler 对某一个 java 项目检测 600 秒后生成火焰图报告,文件是 profile.html。使用浏览器打开 profile.html 文件即可展示生成的火焰图。

分析火焰图

y 轴表示调用栈,每一层都是一个函数。调用栈越深,火焰就越高,顶部就是正在执行的函数,下方都是它的父函数。

x 轴表示抽样数,如果一个函数在 x 轴占据的宽度越宽,就表示它被抽到的次数多,即执行的时间长。注意,x 轴不代表时间,而是所有的调用栈合并后,按字母顺序排列的。

火焰图就是看顶层的哪个函数占据的宽度最大。只要有"平顶"(plateaus),就表示该函数可能存在性能问题。

颜色没有特殊含义。

标签:git,Java,函数,瓶颈,html,profiler,火焰,async
来源: https://www.cnblogs.com/manastudent/p/15661326.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有