调试/性能分析
外观
< 调试
由于性能回退、未优化的新功能或仅仅是影响性能的未知因素,可能需要对应用程序进行性能分析。根据维基百科
- 在软件工程中,性能分析(“程序性能分析”、“软件性能分析”)是一种动态程序分析,它测量程序,例如,空间(内存)或时间复杂度、特定指令的使用情况,或函数调用的频率和持续时间。最常见的是,性能分析信息有助于程序优化,更具体地说,有助于性能工程。
安装
获取调试符号
为了获得可解释的结果,对您正在调试的应用程序的调试符号是*强制*的。请参阅调试/获取跟踪#手动获取调试信息。perf尚不支持 debuginfod,因此必须手动获取调试符号。
如果在没有调试符号的情况下对应用程序进行性能分析或以其他方式进行调试,则只会得到指针而不是实际的函数名称,这非常无用。
用法
与 gdb 一样,应用程序将在 perf 中运行。
注意 可能需要使用
-F 来调整性能分析频率。自2012-05-22以来,它默认为 4000。较高的值会产生更多的负载。虽然默认值在大多数情况下都可以,但您可能希望为运行时非常短的程序增加该值,或者如果程序将长时间运行则降低该值。还要考虑到系统负载,因为高负载会导致采样开销并隐藏正在调试的实际瓶颈。请参阅perf-record(1)。$ perf record -g -- command
这将把数据记录到 perf.data。程序完成后,使用以下命令显示结果:
$ perf report --stdio
为了获得更美观的显示,请考虑使用cargo-flamegraph。
如果向 upstream 报告错误,请提交 perf.data 文件。