参考文章 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消耗热点代码相关推荐

  1. 11 个简练的 Java 性能调优技巧

    转载自 11 个简练的 Java 性能调优技巧 想要让你的项目一直高性能运作吗?以下有一些技巧你可以拿去消除缓存瓶颈,还有一些其他的性能调优建议. 大多数开发者认为性能优化是一个复杂的话题,它需要大量 ...

  2. Java性能调优实践

    作者:张 俊城, 郭 理勇, 和 刘 建 https://www.ibm.com/developerworks/cn/java/j-lo-performance-tuning-practice/ind ...

  3. 为什么对 Java 性能调优最后都像在调 you?

    不知道你有没有发现,优化Java,或者任何其他语言的代码性能经常被当做是一种暗黑艺术. 性能分析有种神秘感.画面类似是这样的:一个「黑客」经过多年练就的手艺,能够快速深入了解某个系统,并提出神奇的解决 ...

  4. java 性能调优_Java性能调优调查结果(第四部分)

    java 性能调优 这是本系列中的最后一篇文章,我们将分析我们在2014年10月进行的Java Performance Tuning Survey的结果.如果您尚未阅读第一篇文章,建议您首先阅读以下内 ...

  5. java 性能调优_Java性能调优调查结果(第三部分)

    java 性能调优 这是本系列文章的第三篇,我们将分析2014年10月进行的调查的结果.如果您尚未这样做,我建议从本系列的前两篇文章开始: 问题严重性分析和监视域分析 . 这篇文章着重于故障排除/根本 ...

  6. java 性能调优_Java性能调优调查结果(第二部分)

    java 性能调优 这是系列文章的第二篇,我们将分析2014年10月进行的性能调整调查的结果.如果您尚未阅读第一部分,我们建议从此处开始 . 第二部分将重点监视Java应用程序的性能问题. 特别是,我 ...

  7. java 性能调优_Java性能调优调查结果(第一部分)

    java 性能调优 我们在2014年10月进行了Java性能调优调查.该调查的主要目的是收集对Java性能世界的见解,以改善Plumbr产品. 但是,我们也很高兴与您分享有趣的结果. 我们收集的数据为 ...

  8. java必读书籍_最佳5本Java性能调优书籍–精选,必读

    java必读书籍 为什么Java开发人员应该阅读有关性能调优的书? 当我很久以前第一次面对这个问题时,我以为以后会做,但是我很长一段时间都没有回过头来. 仅当我在用Java编写的任务关键型服务器端财务 ...

  9. Java性能调优:充分利用垃圾收集器

    JVM背后发生了什么,垃圾回收如何影响Java性能? 性能调优世界是一个危险的地方,一个JVM标志失衡,事情很快就会变得繁琐. 因此 ,我们决定求助于Java性能调优专家, 单调 JVM探查器mjpr ...

最新文章

  1. 2兼容鼠标无法禁用一直乱动_雷柏ralemo气垫鼠标:金属镂空无线充电,机械滚珠情怀在线...
  2. 程序员小哥面对批评该怎么办?以我为例
  3. ORACLE GoldenGate 配置
  4. Notepad++ 插件之 TextFX (安装及作用)
  5. 云计算:容器技术变革云计算,SaaS带动CaaS市场
  6. Java 反射机制深入研究
  7. jquery cookie 插件 (支持json对象) 可以跟jquery 集成 也可以单独使用
  8. 变分模态分解(VMD)原理-附代码
  9. LaTeX论文排版操作模板
  10. 《Android MVPArms 使用butterknife遇到的坑》
  11. 黑马程序员vue前端基础教程-4个小时带你快速入门vue
  12. 安装ipython_linux安装IPython四种方法
  13. 图新地球点云大师:点云数据三维可视化管理及等高线提取
  14. node - 收藏集 - 掘金
  15. 《跟任何人都能聊得来》读书笔记
  16. 1.定义ddos僵尸网络
  17. 华为freelance耳机充不进电修理
  18. 热血传奇之周星弛[转载]【出处:未知】
  19. 【行业科普】一篇文读懂四大、咨询、投行、PE
  20. Redis-狂神笔记-菜鸟风闲整理

热门文章

  1. freebsd mount linprocfs
  2. 微软公有云魅力之Traffic Manager
  3. android ImageSwitcher案例
  4. 【Programming Clip】点分十进制IP和长整型转换
  5. Makingware调用静态块,实现自定义html内容的常用方法(不需要修改模版部分)...
  6. 热门Ruby 库中存在严重的命令注入漏洞
  7. 微软:确实存在另一枚 print spooler 0day,目前尚未修复
  8. 利用 CocoaPods 服务器中的一个 RCE 漏洞,投毒数百万款app
  9. 谷歌发布 V8 Exploit 漏洞奖励计划,奖金加倍
  10. Java 多线程学习笔记