美文网首页
使用火焰图

使用火焰图

作者: 明明就_c565 | 来源:发表于2018-11-27 14:20 被阅读0次

    安装perf和可视化生成器

    [root@localhost heweiwei]# yum install perf -y

    [root@localhost heweiwei]# git clone https://github.com/brendangregg/FlameGraph.git

    perf 采集数据

    [root@localhost heweiwei]# perf record -F99-p3887-g -- sleep 30

    生成火焰图

    [root@localhost heweiwei]# perf script -i perf.data &> perf.unfold

    [root@localhost heweiwei]# ./FlameGraph/stackcollapse-perf.pl perf.unfold &> perf.folded

    [root@localhost heweiwei]# ./FlameGraph/flamegraph.pl perf.folded > perf.svg

    可用浏览器打开 perf.svg

    火焰图的含义

    火焰图是基于 stack 信息生成的 SVG 图片, 用来展示 CPU 的调用栈。

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

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

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

    颜色没有特殊含义, 因为火焰图表示的是 CPU 的繁忙程度, 所以一般选择暖色调.

    参考

    https://blog.csdn.net/gatieme/article/details/78885908

    相关文章

      网友评论

          本文标题:使用火焰图

          本文链接:https://www.haomeiwen.com/subject/psegqqtx.html