最佳答案
扩展另一个答案,我使用 valgrind ( http://valgrind.org ) 的“callgrind”选项。然后安装kcachegrind来自 KDE 的漂亮 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 多倍),但您获得的结果比 shark 的结果准确得多。我倾向于两者都使用,这样我可以获得尽可能多的信息!
关于linux - 在 Mac OS X 上是否有类似 Shark 的 Linux 类似工具?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/217825/