是否有类似Linux的工具在Mac OS X上像Shark一样工作?
解决方案
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团队正在研究它。
不隶属于 StackOverflow