Perf是一个与Linux Kernel紧密结合的软件性能分析工具.
Perf的基本原理是hook事件, 对被分析对象进行采样, 获取数据并分析. 例如在时钟中断触发时采样context可以分析函数的运行时间, 在cache miss触发时采样可以分析缓存的工作效率. 此外, Perf还支持缺页, 进程切换, 具体内核函数等事件, 具体可以参考perf list
.
perf stat ./a.out
, perf stat -p 1234
, 分析程序的整体性能, 可以看到程序的CPU使用率, 进程切换次数, cache利用情况等等.
perf top
, 类似top命令, 可以分析整个系统当前的状态, 例如寻找当前系统最耗时的用户进程或者内核函数.
perf record
和perf report
, 可以记录并分析一段时间内的性能事件.
perf --help
:)
这只是篇简介, 主旨是要说明Perf很强大很易用以及更新一下blog. 另外, 圆周率日快乐!
1, https://perf.wiki.kernel.org/
2, http://www.brendangregg.com/perf.html