From: https://www.cnblogs.com/happyliu/p/6142929.html

1、perf命令简要介绍

性能调优时,我们通常需要分析查找到程序百分比高的热点代码片段,这便需要使用 perf record 记录单个函数级别的统计信息,并使用 perf report 来显示统计结果;

perf record

perf report

举例:

sudo perf record -e cpu-clock -g -p 2548

-g 选项是告诉perf record额外记录函数的调用关系

-e cpu-clock 指perf record监控的指标为cpu周期

-p 指定需要record的进程pid

程序运行完之后,perf record会生成一个名为perf.data的文件,如果之前已有,那么之前的perf.data文件会被覆盖

获得这个perf.data文件之后,就需要perf report工具进行查看

perf report -i perf.data

-i 指定要查看的文件

以诊断mysql为例,report结果:

$sudo perf report  -i perf.data

这种格式很不直观

 2、使用火焰图展示结果

1、Flame Graph项目位于GitHub上:https://github.com/brendangregg/FlameGraph

2、可以用git将其clone下来:git clone https://github.com/brendangregg/FlameGraph.git

我们以perf为例,看一下flamegraph的使用方法:

1、第一步

$sudo perf record -e cpu-clock -g -p 28591

Ctrl+c结束执行后,在当前目录下会生成采样数据perf.data.

2、第二步

用perf script工具对perf.data进行解析

perf script -i perf.data > perf.unfold

3、第三步

将perf.unfold中的符号进行折叠:

#./stackcollapse-perf.pl perf.unfold > perf.folded

4、最后生成svg图:

./flamegraph.pl perf.folded > perf.svg

perf + 火焰图分析程序性能相关推荐

  1. mysql火焰图_perf + 火焰图分析程序性能 - 刘志鹏的Blog - 博客园

    1.perf命令简要介绍 性能调优时,我们通常需要分析查找到程序百分比高的热点代码片段,这便需要使用 perf record 记录单个函数级别的统计信息,并使用 perf report 来显示统计结果 ...

  2. mysql火焰图_perf + 火焰图分析程序性能

    1.perf命令简要介绍 性能调优时,我们通常需要分析查找到程序百分比高的热点代码片段,这便需要使用 perf record 记录单个函数级别的统计信息,并使用 perf report 来显示统计结果 ...

  3. linux性能优化——利用perf火焰图分析内核调用

    1.内核进程 我们知道,在 Linux 中,用户态进程的"祖先",都是 PID 号为 1 的 init 进程.比如,现在主流的 Linux 发行版中,init 都是 systemd ...

  4. C++ 之 perf+火焰图分析与Debug

    0. 简介 在遇到一些内存异常的时候,经常这部分的代码是很难去进行分析的,之前作者就专门写过两篇博客(Ubuntu环境下便于调试代码的工具.Valgrind对ROS程序的可视化分析)来介绍性能分析的问 ...

  5. mysql火焰图_【性能】如何使用perf和火焰图分析系统性能?

    一.实验环境 二.实验案例分析 安装完成后,我们先在第一个终端,执行下面的命令运行案例,也就是一个最基本的 Nginx 应用: 运行 Nginx 服务并对外开放 80 端口 # docker run ...

  6. 【性能】perf + 火焰图分析软件性能瓶颈

    目录 零.即看即用 一.perf 命令 perf简介 perf record参数 命令例子 二.火焰图的含义 三.互动性 四.火焰图示例 五.局限 六.Node 应用的火焰图 七.浏览器的火焰图 八. ...

  7. ali arthas 火焰图_使用arthas 生成火焰图分析jvm

    arthas 是阿里巴巴开源的强大的jvm 应该分析工具,以下是使用arthas 生成jvm 火焰图的一个学习 项目使用docker-compose 运行,对于生成的火焰图使用nginx 提供一个访问 ...

  8. 超好用的自带火焰图的 Java 性能分析工具 Async-profiler 了解一下

    如果你经常遇到 Java 线上性能问题束手无策,看着线上服务 CPU 飙升一筹莫展,发现内存不断泄露满脸茫然.别慌,这里有一款低开销.自带火焰图.让你大呼好用的 Java 性能分析工具 - async ...

  9. python生成分析图_Pyflame 生成火焰图分析 Python 程序

    Pyflame 生成火焰图分析 Python 程序 后台回复[入门资料] 送你十本Python电子书 文 | EarlGrey 推荐 | 编程派公众号 微信号:codingpy Pyflame 是 U ...

最新文章

  1. wordpress 重新生成附件文件名
  2. 爬虫 spider11——搭建分布式架构通过feign技术,开发服务消费者
  3. 博客园如何使用MarkDown
  4. android语言切换快捷键,Android的语言设置两种方法
  5. php no route to host,java.net.NoRouteToHostException: No route to host解决方法
  6. 视觉SLAM——稀疏光流法
  7. javascript笔记---貌似大叔
  8. 科研不是比赛,而是一种对未知和完美的自我追求——跟邢波(Eric Xing)面对面聊科研...
  9. c语言实现鼠标驱动,鼠标驱动程序
  10. 算王标准层的量如何计算机,算王软件常用功能技巧
  11. python拆分word文档_python-docx处理word文档
  12. Sun的JDK7、OpenJDK及IcedTea释疑
  13. Beer Bill(签到题)
  14. 这几天加班熬夜把所有Python库整理了一遍,非常全面!
  15. Android使用marked.js渲染markdown文档
  16. python柱状图加百分比_【python】封装接口直接利用DataFrame绘制百分比柱状图
  17. Guides-旅游类App原型分享
  18. CSS样式层叠关系(一)-- 外部,内部与内联
  19. Java CSS3:(七)CSS3 中常用的样式(跳动的心)
  20. CSS实现强制不换行、自动换行、强制换行的css代码

热门文章

  1. JAVA的instanceOf什么时候用
  2. UML for Java Programmers之dx实战
  3. linux系统操作常见问题(ubuntu和opensuse)
  4. char与varchar的区别
  5. 周怎么换算成月_您每天需要多少能量,怎么知道自己摄入多少能量
  6. 后序遍历的非递归算法python_刷题系列 - Python用非递归实现二叉树后续遍历
  7. android ble mesh,Android 蓝牙Mesh组网代码详解
  8. linux源码安装浏览器,Linux系统手动安装Firefox浏览器
  9. python规则网格插值_Python中规则网格上的插值
  10. python 密度聚类 使用_使用wgd进行全基因组复制分析