是否有任何类似的 Linux 工具可以像 Mac OS X 上的 Shark 一样工作?
Posted
技术标签:
【中文标题】是否有任何类似的 Linux 工具可以像 Mac OS X 上的 Shark 一样工作?【英文标题】:Is there any similar tool for Linux that works like Shark on Mac OS X? 【发布时间】:2008-10-20 09:02:57 【问题描述】:Mac OS X 上的Shark 是一个很好的工具,用于分析正在运行的系统上的应用程序。 Linux有没有类似的工具?
OProfile 好像可以,有人用过吗?
【问题讨论】:
【参考方案1】:扩展另一个答案,我使用 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 和 Shark 看起来很相似,但它们的工作方式却大不相同。当您在 valgrind 中运行应用程序时,它的运行速度会比正常速度慢很多倍(通常慢 40 倍以上),但您得到的结果比鲨鱼的要准确得多。我倾向于两者都用,所以我可以得到尽可能多的信息!
【讨论】:
【参考方案2】:你或许可以试试 Valgrind (http://valgrind.org/)。他们有运行时和编译时分析工具。
【讨论】:
【参考方案3】:回答这个有点晚,但最接近的答案是Zoom。 Shark 团队的一些成员致力于此。
【讨论】:
更新:还请注意,Zoom 现在可以在 Mac OS X 上运行......而 Shark 完全消失了。 遗憾的是,Zoom 不再维护。来自 RotateRight 网站:“Zoom 自 2015 年以来一直没有更新,因此它可能无法在较新的系统上运行。目前没有继续开发 Zoom 的计划。”【参考方案4】:OProfile 是一个工具,它可以对您的应用程序及其进行的系统调用进行基于采样的分析。这允许查看有关其花费时间的详细信息。它没有 GUI,但有几个前端可以让您处理运行中的信息。
我已将它广泛用于桌面应用程序和嵌入式系统。解释结果需要一点努力,但调用图输出在这里真的很有用。
【讨论】:
以上是关于是否有任何类似的 Linux 工具可以像 Mac OS X 上的 Shark 一样工作?的主要内容,如果未能解决你的问题,请参考以下文章
除了大型机之外,是不是有任何工具可以访问像 IMS 这样的非关系数据库? [关闭]
使 Windows 上的字体像 Mac/Linux 一样渲染:禁用字体提示和/或在客户端处理抗锯齿
在 Linux 或 Mac 中是不是有与 getprop/setprop 类似的命令?
Mac OS X 的类似 readelf 的工具? [关闭]