perf 性能分析,火焰图简单试用

性能分析工具nanobench bcc-offcputime perf 火焰图FlameGraph valgrind 火焰图(FlameGraph)是是由 Linux 性能优化大师 Brendan Gregg 发明的。通过 perf 等工具分析得到结果,看起来就像是火焰,这也是它的名字的由来。火焰图以一个全局的视野来看待时间分布,它从底部往顶部,列出所有可能导致性能瓶颈的调用栈。火焰图就像是给一个软件系统拍的 X 光照片,可以很自然地把时间和空间两个维度上的信息融合在一张图上,以非常直观的形式展现出来,从而反映系统在性能方面的很多定量的统计规律。 阅读详情

perf工具

perf在内核源码中有包含,位于tool/perf目录下面 make install安装后可用

火焰图生成工具

git clone https://github.com/brendangregg/FlameGraph.git

on-cpu 火焰图

用于显示cpu耗时的百分比图谱

生成火焰图

lier@lier-VM:~/src/perf_t$ sudo perf record -g -F 99 cp -r /home/lier/src/linux-source-5.4.0 /home/lier/src/test/

lier@lier-VM:~/src/perf_t$ sudo perf script -i perf.data > out.perf

lier@lier-VM:~/src/perf_t$ stackcollapse-perf.pl out.perf > out.folded

lier@lier-VM:~/src/perf_t$ flamegraph.pl out.folded > cp.svg

在这里插入图片描述

off-cpu

安装off-cpu 数据获取工具
#apt install bpfcc-tools

用于显示非cpu耗时的问题,
1、进程进入系统调用执行io动作,io动作的延迟
2、进程等待mutex锁的时间
3、内存被交换,swap的时间
4、内存不够的时候,执行直接内存回收的时间
5、进程被抢占调度走、或者时间片用完被调度走的时间(runqueue太大)

别只盯着On-CPU了!用perf生成Off-CPU火焰图,揪出程序“等待”的元凶 本文深入探讨了如何利用perf生成Off-CPU火焰图,揭示程序在等待状态下的性能瓶颈。通过分析I/O阻塞、锁竞争等隐形问题,结合实战案例和工具链配置,帮助开发者精准定位并优化系统延迟,显著提升应用性能。 阅读详情

相关推荐

深入浅析Linux Perf 性能分析工具及火焰图

本文首先介绍了 Linux Perf Event 子系统的整体架构,接着为读者展示了 Perf 的两种工作模式及各种类别的 Perf Events,之后详细介绍了 Perf Tool 的多种子工具集,最后为读者展示了 Bredan Gregg 先生引入的各种火焰图及其绘制原理。可用于性能瓶颈的查找与热点代码的定位。CPU 火焰图反映了一段时间内用户程序在 CPU 上运行的热点,其绘制原理是对 Perf 采集到的 samples 进行解析,对函数调用栈进行归纳合并,以柱状图的形式呈现给系统管理员。

youzhangjing_的博客 2381

2025年C++性能分析工具全景指南:从Perf到eBPF的实战工作流

在软件工程领域,性能优化是提升系统效率、保障稳定性的核心实践。其基本原理在于通过可观测性工具,量化分析程序在CPU、内存、I/O等硬件资源上的消耗,定位瓶颈。这项技术的价值在于将性能调优从依赖经验的“艺术”,转变为基于数据的、可复现的“工程学科”,能直接提升吞吐量、降低延迟并减少资源成本。其应用场景广泛,涵盖高并发后端服务、实时游戏引擎、高频交易系统及嵌入式设备等对性能有严苛要求的领域。本文聚焦于C++生态,深入解析包括Linux Perf、Valgrind、ThreadSanitizer及eBPF在内的七

weixin_33713350的博客 403

libarchive终极测试指南:单元测试、内存泄漏检测与性能分析实战

在C/C++项目开发中,构建健壮的质量保障体系是确保软件稳定性的关键。其核心原理在于通过自动化测试验证代码逻辑,结合内存管理工具防止资源泄漏,并借助性能剖析优化执行效率。这套方法论的技术价值在于能显著提升代码可靠性,降低线上故障风险,尤其适用于处理复杂数据格式的底层库。在实际应用场景中,像libarchive这类负责归档文件读写的核心库,对稳定性和性能有极高要求。通过Check框架进行单元测试,能覆盖从接口正确性到错误路径的各类案例;利用AddressSanitizer(ASan)进行内存泄漏检测,可高效定

weixin_30616969的博客 572

浮点数加法器设计

一.设计内容及其要求 内容 根据浮点数的运算规则和IEEE754标准,实现浮点数的加法运算器。 要求: 浮点数格式:符号位1位,阶码8位,尾数23位 要求该实验能完整的体现浮点数的运算的五个步骤:对阶、尾数求和、规格化、舍入(要求使用对偶舍入)、溢出判断。 二.基本要素 浮点数 浮点数即实数,实数是所有有理数和无理数的集合。它之所以被称作浮点数,是因为小数点在数中的位置并不是固定的。一个浮点数值分为两部分存储:数值以及小数点在数值中的位置。 计算机中的浮点运算的计算结果一般是不确定的,一块芯片的浮点运算

Phoenix_ZengHao的博客 1万+

AutoCAD 2024 LISP实用技巧:自定义快捷命令与高效绘图工具集

本文详细介绍了如何在AutoCAD 2024中部署和使用LISP脚本,打造高效绘图工具集。通过自定义快捷命令,如WFF(超级文字查找替换)、GQT(图层隔离)和LLTJ(智能长度统计),可大幅简化图层管理、文字编辑和测量统计等重复性操作,显著提升绘图效率。

gan8painter的博客 319

多传感器标定全栈系统学习教程

无论是激光雷达(Lidar)、毫米波雷达(Radar)、相机(Camera)还是惯导(IMU),传感器之间的精确标定直接决定了系统的可靠性与性能。本文将以系统化的视角,梳理多传感器标定的核心知识体系,并分享一套覆盖全栈技术的学习路径。Calibration)是实现点云与图像融合的前提,而雷达与车辆的标定(Radar2Car)则是精准速度估计的关键。:Lidar2Car、Camera2Car的快速标定流程,标定板布置规范。:从单传感器标定入手(如相机内参),逐步过渡到多传感器联合标定。

weixin_41792788的博客 904

【RT-DETR涨点改进】独家创新改进篇 | AAAI2024 | RT-DETR引入CFBlock增强对长程依赖和全局语义信息的建模能力,有助于提升复杂场景下小目标、遮挡目标的检测精度

本文给大家介绍在RT-DETR中引入CFBlock模块,能够有效提升模型对长程依赖和全局语义信息的建模能力,在保持轻量化和高效推理的基础上增强特征表达力,特别有助于提升复杂场景下小目标、遮挡目标的检测精度,从而实现更优的精度与速度平衡。

Ai缝合怪、助力小伙伴高效发论文 260

C++ 图像线特征提取(CannyLine算法+opencv3.4.6)

C++ 图像线特征提取(CannyLine算法+opencv3.4.6)

weixin_43896283的博客 1084

基于YOLOv5的仪表读数识别系统:从检测到识别的完整解决方案

随着工业自动化水平的不断提高,仪表读数识别技术在电力系统、石油化工、智能制造等领域发挥着越来越重要的作用。本文提出了一种基于YOLOv5的仪表自动读数识别系统,该系统能够有效区分指针式和数字式仪表,并实现高精度的读数识别。我们详细介绍了系统的整体架构、数据集构建、模型训练策略以及用户界面设计,并提供了完整的代码实现。实验结果表明,本系统在仪表检测和读数识别任务上均取得了优异的表现,为工业现场的自动化监控提供了可靠的技术支持。关键词:仪表读数识别;YOLOv5;目标检测;深度学习;工业自动化。

YOLO 678

华为OD机试双机位C卷-几何平均值最大子数组(Py/Java/C/C++/Js/Go)

华为OD机试(机考)2026双机位C卷 【几何平均值最大子数组】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【几何平均值最大子数组】。

qq_45776114的博客 1367

YOLOv13改进策略【Neck篇】| GSConv 轻量卷积,Slim-Neck 减参数还不掉点

Neck 篇的第二篇继续"替换式"改进,这次的对象是 Neck 里的下采样卷积。GSConv 出自《Slim-neck by GSConv: a better design of lightweight detector》(2022),它的出发点:DWSConv(深度可分离)轻但"信息混不进通道",标准卷积重但表达好——GSConv 用GConv(分组卷积)混通道 + DWConv 补空间 + Channel Shuffle 打散,两全其美。

qq_53329130的博客 30

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

上一篇: 文件防火墙redirfs
下一篇: qemu启动文件重打包
inquisiter
博客等级 码龄10年 374粉丝 228原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值