【问题标题】:Is there any similar tool for Linux that works like Shark on Mac OS X?是否有任何类似的 Linux 工具可以像 Mac OS X 上的 Shark 一样工作?
【发布时间】:2008-10-20 09:02:57
【问题描述】:

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

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

【问题讨论】:

    标签: linux profiling profiler 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,但有几个前端可以让您处理运行中的信息。

        我已将它广泛用于桌面应用程序和嵌入式系统。解释结果需要一点努力,但调用图输出在这里真的很有用。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-03-18
          • 2017-10-17
          • 1970-01-01
          • 2015-08-11
          • 2011-11-21
          • 1970-01-01
          • 2018-08-29
          • 2020-05-24
          相关资源
          最近更新 更多