我们正在将应用程序从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/