perf + 火焰图分析程序性能
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 + 火焰图分析程序性能相关推荐
- mysql火焰图_perf + 火焰图分析程序性能 - 刘志鹏的Blog - 博客园
1.perf命令简要介绍 性能调优时,我们通常需要分析查找到程序百分比高的热点代码片段,这便需要使用 perf record 记录单个函数级别的统计信息,并使用 perf report 来显示统计结果 ...
- mysql火焰图_perf + 火焰图分析程序性能
1.perf命令简要介绍 性能调优时,我们通常需要分析查找到程序百分比高的热点代码片段,这便需要使用 perf record 记录单个函数级别的统计信息,并使用 perf report 来显示统计结果 ...
- linux性能优化——利用perf火焰图分析内核调用
1.内核进程 我们知道,在 Linux 中,用户态进程的"祖先",都是 PID 号为 1 的 init 进程.比如,现在主流的 Linux 发行版中,init 都是 systemd ...
- C++ 之 perf+火焰图分析与Debug
0. 简介 在遇到一些内存异常的时候,经常这部分的代码是很难去进行分析的,之前作者就专门写过两篇博客(Ubuntu环境下便于调试代码的工具.Valgrind对ROS程序的可视化分析)来介绍性能分析的问 ...
- mysql火焰图_【性能】如何使用perf和火焰图分析系统性能?
一.实验环境 二.实验案例分析 安装完成后,我们先在第一个终端,执行下面的命令运行案例,也就是一个最基本的 Nginx 应用: 运行 Nginx 服务并对外开放 80 端口 # docker run ...
- 【性能】perf + 火焰图分析软件性能瓶颈
目录 零.即看即用 一.perf 命令 perf简介 perf record参数 命令例子 二.火焰图的含义 三.互动性 四.火焰图示例 五.局限 六.Node 应用的火焰图 七.浏览器的火焰图 八. ...
- ali arthas 火焰图_使用arthas 生成火焰图分析jvm
arthas 是阿里巴巴开源的强大的jvm 应该分析工具,以下是使用arthas 生成jvm 火焰图的一个学习 项目使用docker-compose 运行,对于生成的火焰图使用nginx 提供一个访问 ...
- 超好用的自带火焰图的 Java 性能分析工具 Async-profiler 了解一下
如果你经常遇到 Java 线上性能问题束手无策,看着线上服务 CPU 飙升一筹莫展,发现内存不断泄露满脸茫然.别慌,这里有一款低开销.自带火焰图.让你大呼好用的 Java 性能分析工具 - async ...
- python生成分析图_Pyflame 生成火焰图分析 Python 程序
Pyflame 生成火焰图分析 Python 程序 后台回复[入门资料] 送你十本Python电子书 文 | EarlGrey 推荐 | 编程派公众号 微信号:codingpy Pyflame 是 U ...
最新文章
- wordpress 重新生成附件文件名
- 爬虫 spider11——搭建分布式架构通过feign技术,开发服务消费者
- 博客园如何使用MarkDown
- android语言切换快捷键,Android的语言设置两种方法
- php no route to host,java.net.NoRouteToHostException: No route to host解决方法
- 视觉SLAM——稀疏光流法
- javascript笔记---貌似大叔
- 科研不是比赛,而是一种对未知和完美的自我追求——跟邢波(Eric Xing)面对面聊科研...
- c语言实现鼠标驱动,鼠标驱动程序
- 算王标准层的量如何计算机,算王软件常用功能技巧
- python拆分word文档_python-docx处理word文档
- Sun的JDK7、OpenJDK及IcedTea释疑
- Beer Bill(签到题)
- 这几天加班熬夜把所有Python库整理了一遍,非常全面!
- Android使用marked.js渲染markdown文档
- python柱状图加百分比_【python】封装接口直接利用DataFrame绘制百分比柱状图
- Guides-旅游类App原型分享
- CSS样式层叠关系(一)-- 外部,内部与内联
- Java CSS3:(七)CSS3 中常用的样式(跳动的心)
- CSS实现强制不换行、自动换行、强制换行的css代码
热门文章
- JAVA的instanceOf什么时候用
- UML for Java Programmers之dx实战
- linux系统操作常见问题(ubuntu和opensuse)
- char与varchar的区别
- 周怎么换算成月_您每天需要多少能量,怎么知道自己摄入多少能量
- 后序遍历的非递归算法python_刷题系列 - Python用非递归实现二叉树后续遍历
- android ble mesh,Android 蓝牙Mesh组网代码详解
- linux源码安装浏览器,Linux系统手动安装Firefox浏览器
- python规则网格插值_Python中规则网格上的插值
- python 密度聚类 使用_使用wgd进行全基因组复制分析