我们正在将应用程序从solaris移植到linux。linux应用程序中很少有工作流比solaris应用程序花费更多的时间。我使用solaris studio profiler在函数级进行分析,这给了我每个函数所花费的时间。但是在linux中,我探索了perf工具,我无法找到如何将perf附加到正在运行的应用程序,也没有找到任何命令来打印进程的每个函数所花费的时间。提前谢谢。

最佳答案

通过使用-p中的perf record选项(fromman 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

我希望这能有帮助。

关于linux - Linux中进程功能的时间消耗,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57692712/

10-13 05:52