我正在尝试获取流程中各个功能的性能。我怎样才能使用 perf 工具做到这一点?还有其他工具吗?
例如,假设 main 函数调用函数 A 、 B 、 C 。我想分别获得主要功能以及功能 A、B、C 的性能。
有没有关于perf源代码的好文档?
谢谢。
最佳答案
您想要做的是用户空间探测。 Perf 只能做一部分。
尝试 sudo perf top -p [pid]
然后观察记分牌。它将显示按 CPU 使用率排序的函数列表。这是基准测试期间 redis 的快照:
如果你想获得更多用户空间函数的信息,比如 IO 使用、延迟、内存使用,我强烈建议你使用 Systemtap。它既是脚本语言,也是在基于 Linux 内核的操作系统上分析程序的工具。这是一个关于它的教程:
http://qqibrow.github.io/performance-profiling-with-systemtap/
而且您不需要成为 systemtap 脚本专家,网上有很多适合您的好脚本。 例如,有一个使用它来找出特定功能的延迟的示例。
关于linux - 有没有办法使用 perf 工具查找流程中各个功能的性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27749804/