Tro*_*yvs 4 linux comparison performance gprof perf
这两个工具都是 Linux 性能和分析探测工具。我发现“perf”看起来更强大,因为它可以追溯到内核调用级别。所以我的问题是,有了“perf”,是否还需要学习和保留“gprof”/
我的意思是,有没有什么工作只能用 gprof 才能完成,而 perf 却不能很好地工作?
gprof(针对不同操作系统的几种实现)与程序的检测(需要重新编译)以及间隔定时器信号的统计 PC 采样(setitimer,高达 0.1-1 kHz)配合使用。通过检测,它可以获得有关函数之间的调用和函数调用计数的信息。检查https://en.wikipedia.org/wiki/Gprof:
Gprof 是一款针对 Unix 应用程序的性能分析工具。它使用仪器和采样的混合[1],并被创建为旧“prof”工具的扩展版本。与 prof 不同,gprof 能够进行有限的调用图收集和打印。[1][2]
perf是仅适用于 Linux 的现代统计分析工具。它可以在软件计时器和硬件性能计数器(例如执行的指令、L1 未命中计数等)上对 PC 和调用堆栈(如果有帧指针或足够的调试信息来展开调用堆栈)进行采样;完整的事件列表showevtinfo是http ://www.bnikolic.co.uk/blog/hpc-prof-events.html,可在/sf/answers/1677566621/中找到)。perf 中还内置了其他模式:http ://www.brendangregg.com/perf.html
因此,gprof可以向您显示单个程序的准确函数调用计数,但它无法解析调用堆栈(它只是近似值)。Linux、BSD 和许多其他 Unix 和类 Unix 操作系统中都有 gprof。perf仅限 Linux,但可以访问硬件性能监控单元并支持单程序分析和系统范围分析。
| 归档时间: |
|
| 查看次数: |
4542 次 |
| 最近记录: |