我们正在将应用程序从 solaris 移植到 linux。Linux 应用程序中很少有工作流比 Solaris 应用程序花费更多的时间。我使用 solaris studio 探查器在函数级别进行分析,这使我在每个函数上都消耗了时间。但是在 linux 中,我探索了 perf 工具,我找不到如何将 perf 附加到正在运行的应用程序,也没有找到任何将打印进程每个功能所消耗时间的命令。提前谢谢。
附加到进程是通过使用perf record
中的-p
选项完成的(从man perf-record
(:
-p, --pid=
Record events on existing process ID (comma separated list).
因此,假设您的进程具有 ID 12345,您可以使用 (使用-g
启用调用图(:
perf record -g -p 12345
然后,Perf 将在进程终止时自动写入perf.data
。然后,您可以通过调用来检查文件
perf report
我希望这有所帮助。