当前位置: 首页 > news >正文

perf与火焰图-性能分析工具

参考链接

perf性能分析工具使用分享
如何读懂火焰图?-阮一峰
perf基本用法-record,report-知乎

火焰图抓取

准备:

  • centos安装perf工具
dnf install perf
  • 下载火焰图解析代码
git clone https://github.com/brendangregg/FlameGraph.git

抓取指定进程的火焰图

perf record -F 99 -p xxpid -g -- sleep 60 
perf script -i perf.data > perf.unfold
./FlameGraph/stackcollapse-perf.pl perf.unfold > perf.folded
./FlameGraph/flamegraph.pl perf.folded > perf.svg
参数解析

-F 99 :1秒钟进行采集99次
-p xxxid: 采集进程id信息
-a:采集所有cpus信息
-g:收集调用栈
– sleep 30:采集时间为30秒

火焰图说明

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

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

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

注意:

./FlameGraph/stackcollapse-perf.pl./FlameGraph/flamegraph.plFlameGraph.git中的工具,负责火焰图数据的解析,需要注意可执行权限。

相关文章:

  • 现代物流系统的分析与设计
  • [java/jdbc]插入数据时获取自增长主键的值
  • keepalived+lvs 对nginx做负载均衡和高可用
  • HTML---列表.表格.媒体元素
  • 低多边形建筑3D模型纹理贴图
  • 淡化了技术指标 还能做现货黄金交易?
  • Maven的settings.xml笔记231208
  • 【嵌入式开发 Linux 常用命令系列 4.2 -- .repo 各个目录介绍】
  • 使用cmake构建Qt6.6的qt quick项目,添加应用程序图标的方法
  • 软件兼容性测试:保障多样化用户体验的重要功能
  • 数据分析基础之《matplotlib(5)—直方图》
  • 分布式环境认证和授权-基于springboot+JWT+拦截器实现-实操+源码下载
  • 什么是 AWS IAM?如何使用 IAM 数据库身份验证连接到 Amazon RDS(上)
  • 【python中类的介绍】
  • jquery实现省市区三级联动
  • [微信小程序] 使用ES6特性Class后出现编译异常
  • 2017-08-04 前端日报
  • HomeBrew常规使用教程
  • Java 多线程编程之:notify 和 wait 用法
  • JavaScript异步流程控制的前世今生
  • Java应用性能调优
  • nodejs实现webservice问题总结
  • Redis学习笔记 - pipline(流水线、管道)
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • 产品三维模型在线预览
  • 创建一种深思熟虑的文化
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 翻译:Hystrix - How To Use
  • 分享几个不错的工具
  • 诡异!React stopPropagation失灵
  • 回流、重绘及其优化
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • ​Kaggle X光肺炎检测比赛第二名方案解析 | CVPR 2020 Workshop
  • # 数论-逆元
  • #FPGA(基础知识)
  • (二)fiber的基本认识
  • (四)图像的%2线性拉伸
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • (转)从零实现3D图像引擎:(8)参数化直线与3D平面函数库
  • (轉貼) VS2005 快捷键 (初級) (.NET) (Visual Studio)
  • .equal()和==的区别 怎样判断字符串为空问题: Illegal invoke-super to void nio.file.AccessDeniedException
  • .net 4.0发布后不能正常显示图片问题
  • .net core 依赖注入的基本用发
  • .NET gRPC 和RESTful简单对比
  • .NET Reactor简单使用教程
  • .Net Winform开发笔记(一)
  • .NET/C# 项目如何优雅地设置条件编译符号?
  • .net6Api后台+uniapp导出Excel
  • @ModelAttribute 注解
  • @RequestParam @RequestBody @PathVariable 等参数绑定注解详解
  • @SpringBootApplication 包含的三个注解及其含义
  • [ vulhub漏洞复现篇 ] ECShop 2.x / 3.x SQL注入/远程执行代码漏洞 xianzhi-2017-02-82239600
  • [20171101]rman to destination.txt
  • [Android 数据通信] android cmwap接入点
  • [ARC066F]Contest with Drinks Hard