【发布时间】:2008-10-20 09:02:57
【问题描述】:
【问题讨论】:
标签: linux profiling profiler oprofile
【问题讨论】:
标签: linux profiling profiler oprofile
扩展另一个答案,我使用 valgrind (http://valgrind.org) 的“callgrind”选项。然后从 KDE 安装 kcachegrind 以获得漂亮的 GUI 界面。
作为一个假人的教程,做:
1) 使用调试信息编译您的应用程序。尝试在开启和关闭优化的情况下进行分析是个好主意,在关闭优化的情况下,您将获得更多信息,但它可能不太准确(特别是微小的函数似乎会占用比应得的更多时间。
2) 运行:
valgrind --tool=callgrind <name of your app> <your app's options>
这应该会生成一个名为“callgrind.something”的文件,您可以将其加载到 kcachegrind 中。
你也可以看看:
valgrind --tool=cachegrind <name of your app> <your app's options>
这将为您提供有关您的应用如何与 CPU 缓存交互的信息。
请注意,虽然 valgrind 和 Shark 看起来很相似,但它们的工作方式却大不相同。当您在 valgrind 中运行应用程序时,它的运行速度会比正常速度慢很多倍(通常慢 40 倍以上),但您得到的结果比鲨鱼的要准确得多。我倾向于两者都用,所以我可以得到尽可能多的信息!
【讨论】:
你或许可以试试 Valgrind (http://valgrind.org/)。他们有运行时和编译时分析工具。
【讨论】:
回答这个有点晚,但最接近的答案是Zoom。 Shark 团队的一些成员致力于此。
【讨论】:
OProfile 是一个工具,它可以对您的应用程序及其进行的系统调用进行基于采样的分析。这允许查看有关其花费时间的详细信息。它没有 GUI,但有几个前端可以让您处理运行中的信息。
我已将它广泛用于桌面应用程序和嵌入式系统。解释结果需要一点努力,但调用图输出在这里真的很有用。
【讨论】: