zoukankan      html  css  js  c++  java
  • java性能分析之火焰图

    原由

    最近因为kafka、zookeeper、ES和相关的Java应用的内存问题搞的头大,做运维将近4年,对Java调优、性能方面的知识了解的少之又少,是时候下定决心来对他多一个学习了。不能一口吃成一个胖子,每天学一点学一点。Brendan D. Gregg他真的是我膜拜膜拜又膜拜的偶像,他的博客里有很多很多的干货,也一直还没全面的学习,强烈推荐http://www.brendangregg.com/index.html。也是看了他的博客和相关书籍,里面的火焰图看起来就很牛逼,于是就想着理论结合实践动起来。
     

    前言

    这里先记录怎么把火焰图弄出来,具体的原理及其分析后续一点一点的磕,一点一点的补,具体的步骤入下。
     

    结果

     

    实现

    1、安装依赖包
    yum -y install git
    yum install gcc gcc-c++
    yum install perf
    2、安装perf-map-agent
    git clone --depth=1 https://github.com/jvm-profiling-tools/perf-map-agent
    cd perf-map-agent
    cmake . (这里记得系统需要有JAVA_HOME的环境变量,可以通过echo $JAVA_HOME看你的系统是否已经有了)
    make
    3、分析和生成火焰图
    git clone --depth=1 https://github.com/brendangregg/FlameGraph
    perf record -F 49 -a -g -- sleep 30; ./FlameGraph/jmaps
    perf script > out.stacks01
    cat out.stacks01 | ./FlameGraph/stackcollapse-perf.pl | grep -v cpu_idle | ./FlameGraph/flamegraph.pl --color=java --hash > out.stacks01.svg
    注:vim ./FlameGraph/jmaps 文件的AGENT_HOME要改成自己第二步安装的目录
     
     

    相关链接

  • 相关阅读:
    线程同步锁的使用方式
    EventBus简单封装
    Dagger2不自动生成daggerXXXcomponent
    android mvp模式
    第八天
    单词统计续
    学习进度第十一周
    第七天
    第六天
    第五天
  • 原文地址:https://www.cnblogs.com/lemon-le/p/13820204.html
Copyright © 2011-2022 走看看