java 性能调优,使用 async-profiler + FlameGraph火焰图 分析cup消耗热点代码
参考文章 https://www.jianshu.com/p/9364028cca4e
目的:通过分析工具找到项目中占用cpu时间最长的代码片段,优化热点代码,达到优化内存的效果。
1.准备工具,从git中下载项目,可以在linux服务器上直接clone,我这里选择在Windows上先下载工具。
2.下载 FlameGraph,和 async-profiler 代码。
在git本地仓库中打开Git Bash执行:
git clone https://github.com/jvm-profiling-tools/async-profiler
git clone https://github.com/brendangregg/FlameGraph
如图:完成后再文件夹中得到两个项目代码,完成后打包上传linux服务器。这里是我下载的项目,https://download.csdn.net/download/flybridy/10620441 但最好去git上拉取最新的。
2.上传解压,配置async-profiler和FlameGraph参数:
上传解压后,进入到对应的文件夹使用chmod 赋予sh和pl的执行权限。
如图:一定注意执行chmod 的目录。
3.查看java_home,编译async-profiler。
进入async-profiler目录下,先查看java 配置,没问题之后执行make编译。具体如图
echo $JAVA_HOME
4.采集cpu profile数据,具体脚本命令请参考文章开头分享的博客。我这边直接对项目进行采集。
在async-profiler目录下。将进程号为5144的程序,采集20秒cpu数据,采集出来输出到/vdb/quote/collapsed2.txt 文件中。执行
./profiler.sh -d 20 -o collapsed -f /vdb/quote/collapsed2.txt 5144
5.将collapsed2.txt文件生成火焰图。
在FlameGraph 目录下,将数据文件生成火焰图svg文件,执行
./flamegraph.pl --colors=java /vdb/quote/collapsed2.txt > /vdb/quote/flamegraph.svg
6.下载svg文件到本地,用浏览器打开就可以看到了。可以看到项目中该方法占用cpu最多。
7.火焰图详解 参考:
http://www.ruanyifeng.com/blog/2017/09/flame-graph.html
https://blog.csdn.net/21cnbao/article/details/78527777
java 性能调优,使用 async-profiler + FlameGraph火焰图 分析cup消耗热点代码相关推荐
- 11 个简练的 Java 性能调优技巧
转载自 11 个简练的 Java 性能调优技巧 想要让你的项目一直高性能运作吗?以下有一些技巧你可以拿去消除缓存瓶颈,还有一些其他的性能调优建议. 大多数开发者认为性能优化是一个复杂的话题,它需要大量 ...
- Java性能调优实践
作者:张 俊城, 郭 理勇, 和 刘 建 https://www.ibm.com/developerworks/cn/java/j-lo-performance-tuning-practice/ind ...
- 为什么对 Java 性能调优最后都像在调 you?
不知道你有没有发现,优化Java,或者任何其他语言的代码性能经常被当做是一种暗黑艺术. 性能分析有种神秘感.画面类似是这样的:一个「黑客」经过多年练就的手艺,能够快速深入了解某个系统,并提出神奇的解决 ...
- java 性能调优_Java性能调优调查结果(第四部分)
java 性能调优 这是本系列中的最后一篇文章,我们将分析我们在2014年10月进行的Java Performance Tuning Survey的结果.如果您尚未阅读第一篇文章,建议您首先阅读以下内 ...
- java 性能调优_Java性能调优调查结果(第三部分)
java 性能调优 这是本系列文章的第三篇,我们将分析2014年10月进行的调查的结果.如果您尚未这样做,我建议从本系列的前两篇文章开始: 问题严重性分析和监视域分析 . 这篇文章着重于故障排除/根本 ...
- java 性能调优_Java性能调优调查结果(第二部分)
java 性能调优 这是系列文章的第二篇,我们将分析2014年10月进行的性能调整调查的结果.如果您尚未阅读第一部分,我们建议从此处开始 . 第二部分将重点监视Java应用程序的性能问题. 特别是,我 ...
- java 性能调优_Java性能调优调查结果(第一部分)
java 性能调优 我们在2014年10月进行了Java性能调优调查.该调查的主要目的是收集对Java性能世界的见解,以改善Plumbr产品. 但是,我们也很高兴与您分享有趣的结果. 我们收集的数据为 ...
- java必读书籍_最佳5本Java性能调优书籍–精选,必读
java必读书籍 为什么Java开发人员应该阅读有关性能调优的书? 当我很久以前第一次面对这个问题时,我以为以后会做,但是我很长一段时间都没有回过头来. 仅当我在用Java编写的任务关键型服务器端财务 ...
- Java性能调优:充分利用垃圾收集器
JVM背后发生了什么,垃圾回收如何影响Java性能? 性能调优世界是一个危险的地方,一个JVM标志失衡,事情很快就会变得繁琐. 因此 ,我们决定求助于Java性能调优专家, 单调 JVM探查器mjpr ...
最新文章
- 2兼容鼠标无法禁用一直乱动_雷柏ralemo气垫鼠标:金属镂空无线充电,机械滚珠情怀在线...
- 程序员小哥面对批评该怎么办?以我为例
- ORACLE GoldenGate 配置
- Notepad++ 插件之 TextFX (安装及作用)
- 云计算:容器技术变革云计算,SaaS带动CaaS市场
- Java 反射机制深入研究
- jquery cookie 插件 (支持json对象) 可以跟jquery 集成 也可以单独使用
- 变分模态分解(VMD)原理-附代码
- LaTeX论文排版操作模板
- 《Android MVPArms 使用butterknife遇到的坑》
- 黑马程序员vue前端基础教程-4个小时带你快速入门vue
- 安装ipython_linux安装IPython四种方法
- 图新地球点云大师:点云数据三维可视化管理及等高线提取
- node - 收藏集 - 掘金
- 《跟任何人都能聊得来》读书笔记
- 1.定义ddos僵尸网络
- 华为freelance耳机充不进电修理
- 热血传奇之周星弛[转载]【出处:未知】
- 【行业科普】一篇文读懂四大、咨询、投行、PE
- Redis-狂神笔记-菜鸟风闲整理
热门文章
- freebsd mount linprocfs
- 微软公有云魅力之Traffic Manager
- android ImageSwitcher案例
- 【Programming Clip】点分十进制IP和长整型转换
- Makingware调用静态块,实现自定义html内容的常用方法(不需要修改模版部分)...
- 热门Ruby 库中存在严重的命令注入漏洞
- 微软:确实存在另一枚 print spooler 0day,目前尚未修复
- 利用 CocoaPods 服务器中的一个 RCE 漏洞,投毒数百万款app
- 谷歌发布 V8 Exploit 漏洞奖励计划,奖金加倍
- Java 多线程学习笔记