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

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

有帮助吗?

解决方案

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

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

其他提示

扩展另一个答案,我使用valgrind的'callgrind'选项( http://valgrind.org )。然后从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倍),但您得到的结果比鲨鱼更准确。我倾向于使用两者,所以我可以获得尽可能多的信息!

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top