惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

IT之家
IT之家
Recent Announcements
Recent Announcements
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The GitHub Blog
The GitHub Blog
MyScale Blog
MyScale Blog
爱范儿
爱范儿
GbyAI
GbyAI
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
美团技术团队
Y
Y Combinator Blog
博客园 - 叶小钗
Apple Machine Learning Research
Apple Machine Learning Research
Martin Fowler
Martin Fowler
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
罗磊的独立博客
M
MIT News - Artificial intelligence
博客园 - Franky
V
Visual Studio Blog
I
InfoQ
V
V2EX
Hugging Face - Blog
Hugging Face - Blog
腾讯CDC
博客园 - 司徒正美
L
LangChain Blog

博客园 - 新西兰程序员

C++ 构造函数中的初始化参数列表initializer list C++中的线程thread,以及C++11中的std::atomic学习 Leetcode56 Merge Intervals 合并区间 -- C++实现 C++中的内存对齐 C++中的static关键字使用以及全局变量 C++17中的结构化绑定Structured Binding C++中的函数参数是指针类型, 是按值传递 C++中异常处理机制中的栈展开stack unwinding C++实现链表反转 C++17中新建一个类时,编译器默认生成的类成员函数 QT中的元对象系统 Leetcode 114 - 二叉树展开为链表 Leetcode65 有效数字 - 判断给定的字符串是否是一个有效数字 LettCode2289-Steps to Make Array Non-descreasing C#中的委托详解 C++中的std::function C++中的仿函数Functor C++中的const和constexpr异同比较 C++中的左值和右值,以及右值引用,移动语义 C++中传递参数是指针类型以及传入参数是指针的指针(**)详解 C++中GetTickCount函数学习 C++中以类的成员函数作为Windows callback函数需要设置成static函数 C#中的System.Security.SecureString学习 C++中的悬挂指针和野指针 C++中四种不同的对象生存方式(in stack, in heap, global, local static) C#中使用Parallel类来进行多线程并发编程 String类型转LPCTSTR -----理解C++中的字符串类型转换 C++中的虚函数和虚函数表 C++中基类指针指向派生类对象 数据结构 - 栈的学习
Linux中的性能分析工具 perf 来分析C++性能
新西兰程序员 · 2026-04-17 · via 博客园 - 新西兰程序员

perf - Performance Analysis Tools for Linux  -- 是Linux内核自带的性能分析工具,广泛用于监控系统性能,分析程序瓶颈和优化.. 它不仅能够捕获硬件事件(如 CPU周期,缓存命中/未命中), 还可以帮助开发者定位性能热点,支持用户态和内核态的全面分析.

perf通过访问Linux内核中的性能监控单元(PMU+), 采样和计数硬件事件. PMU专门用于监控硬件性能,  perf通过这些单元收集数据并分析性能. 另外,perf 还支持监控软件事件(如上下文切换,页面错误), 以及用户定义的跟踪点,增强了其分析能力.

最常用的一个命令是 perf stat     => stat应该是statictis的简写,就是统计分析,  常用的方法如下

1.  测量程序执行时间及性能指标

perf stat -d ./your_program

这里,./your_program是你想要分析的程序.  -d 选项是用来显示延迟统计信息

2. 只测量特定的性能事件

perf stat -e cycles,instructions,cache-misses  ./your_program

这里, -e 选项后面跟的是要监控的性能事件,如CPU周期数(cycles), 指令数(instructions) 和 缓存未命中数 (cache-misses)