perf
是 Linux 中一个强大的性能分析工具,能够对系统、应用程序以及内核进行性能调优和性能分析。通过收集硬件性能计数器、跟踪系统事件和采样程序调用栈等方式,perf
提供了详细的性能统计信息,帮助开发人员定位性能瓶颈,从而优化代码和系统性能。
在不同的 Linux 发行版中,安装方法有所不同:
在 CentOS/RHEL 上:
sudo yum install perf
在 Fedora 上:
sudo dnf install perf
在 Ubuntu 上:
sudo apt install linux-tools-common linux-tools-$(uname -r)
perf stat
用于收集和显示性能计数器统计信息,常用于监测进程或命令的整体性能指标,如指令数、缓存命中率、分支预测错误等。
# 示例:统计程序运行时的硬件事件
$ perf stat ./your_program
perf record
用于采集程序执行期间的硬件性能计数器数据、事件和调用栈信息,并将其保存到数据文件中,以便后续分析。
# 示例:记录程序运行时的性能事件
$ perf record -g ./your_program
perf report
用于分析通过 perf record
收集的性能采样数据,并生成性能分析报告,显示调用栈信息、函数耗时和性能热点等。
# 示例:分析记录的性能事件
$ perf report
perf top
用于实时监测进程的性能指标,并显示当前的性能热点,如 CPU 使用情况、函数执行次数和事件计数等。
# 示例:实时显示系统中占用 CPU 最多的函数
$ perf top
perf annotate
用于以源代码的方式显示采样数据和调用栈信息,并标注每个源代码行的性能指标。
# 示例:对特定函数进行详细的性能分析
$ perf annotate function_name
perf diff
用于比较和分析两个不同版本的程序的性能差异。
# 示例:对比两个 perf 数据文件
$ perf diff ./perf.data1 ./perf.data2
perf probe
用于动态添加和移除性能探针,以收集特定代码路径的性能数据。
# 示例:添加探针
$ perf probe function_name
perf
工具适用于多种性能分析场景,包括:
perf
前,需要确保内核支持 perf_event
子系统,并在编译内核时开启 CONFIG_PERF_EVENTS
选项。perf
可能需要 root 权限才能完全使用,建议通过 sudo
运行相关命令。亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>