是否有类似Linux的工具在Mac OS X上像Shark一样工作?

时间:2008-10-20 09:02:57

标签: linux profiling profiler oprofile

Mac OS X上的

Shark是在正在运行的系统上分析应用程序的绝佳工具。 Linux有类似的工具吗?

OProfile看起来可能是,有人用它吗?

4 个答案:

答案 0 :(得分:8)

扩展另一个答案,我使用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和鲨鱼看起来像类似的应用程序,但它们的工作方式却截然不同。当您在valgrind中运行应用程序时,它将比正常情况慢很多倍(通常慢40倍),但您得到的结果比鲨鱼更准确。我倾向于使用两者,所以我可以获得尽可能多的信息!

答案 1 :(得分:5)

你可以试试Valgrind(http://valgrind.org/)。它们具有运行时和编译时分析工具。

答案 2 :(得分:5)

回答这个问题有点迟,但最接近的答案是Zoom。一些Shark团队正在研究它。

答案 3 :(得分:2)

OProfile是一个工具,可以对您的应用程序及其进行的系统调用进行基于抽样的分析。这样可以查看有关花费时间的详细信息。它没有GUI,但有几个前端可以让你处理运行中的信息。

我已广泛使用它,包括桌面应用程序和嵌入式系统。解释结果需要花费一点力气,但是调用图输出在这里非常有用。