linux - 在 Mac OS X 上是否有类似 Shark 的 Linux 类似工具?

标签 linux profiling profiler oprofile

Shark在 Mac OS X 上是一个很好的工具,用于在运行的系统上分析应用程序。 Linux 有类似的工具吗?

OProfile好像可以,有人用过吗?

最佳答案

扩展另一个答案,我使用 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/

相关文章:

linux - 如何将目录 A 链接到/var/www/root,如下所示?

ruby - 分析 Ruby 代码

c++ - 如何检查 QProcess 是否正确执行?

linux - 引用内核模块中的 console_loglevel ERROR

linux - 如何运行没有 .sh 扩展名的 bash 脚本?

java - 无法在 Windows 10 上运行作为服务运行的 Java 应用程序的 Continuous Flight Recorder

c++ - 分析说明

unit-testing - 如何在 Android Studio 中分析测试?

Javascript 剖析之谜——闭包变量

node.js - 如何在 Meteor 中使用分析器?