perf
是一个强大的 Linux 命令行工具,用于分析应用程序和系统性能
安装 perf
:
在大多数 Linux 发行版中,您可以使用包管理器安装 perf
。例如,在 Ubuntu 或 Debian 上,可以使用以下命令安装:
sudo apt-get install linux-tools-common linux-tools-generic linux-tools-`uname -r`
收集性能数据:
要收集应用程序的性能数据,您需要运行它并使用 -e
选项指定要跟踪的事件。例如,要跟踪内核函数 sys_read
的调用次数,可以运行:
sudo perf event -e syscalls:sys_read -I 1000 ./your_application
这将每隔 1000 微秒记录一次 sys_read
事件的调用次数。您可以根据需要调整间隔。
输出结果:
默认情况下,perf
会将结果输出到标准输出。您可以使用 perf report
命令查看格式化后的结果:
sudo perf report -n --stdio
这将显示一个类似于以下的输出:
# Overhead Command Shared Object Symbol
# ........ ........ ............. ......
# Overhead Command Shared Object Symbol
# ........ ........ ............. ......
50.00% myapp myapp [.] my_function
|
|--50.00%-- main
start_thread
clone
这表示 my_function
函数占用了 50% 的时间,而 main
和 start_thread
函数各占用了 25%。
分析结果:
您可以使用 perf
提供的各种选项进一步分析结果。例如,要查看特定函数的源代码和行号,可以使用 -g
选项:
sudo perf report -g --stdio
要查看特定函数的调用图,可以使用 perf graph
命令:
sudo perf graph -f --stdio
这将显示一个调用图,帮助您了解函数之间的调用关系。
调试:
perf
还可以用于调试应用程序。例如,要跟踪特定函数的调用栈,可以使用 -F
选项:
sudo perf trace -F 99 ./your_application
这将每隔 99 毫秒记录一次函数调用栈。
这些只是 perf
的一些基本用法。您可以通过阅读 perf
手册页(man perf
)和在线文档了解更多高级功能。