【问题标题】:Profiling visualization tools?分析可视化工具?
【发布时间】:2008-09-10 18:37:57
【问题描述】:

我需要显示从深度嵌入式 CPU 中提取的分析信息,并以我团队中的其他开发人员能够采取行动的方式呈现。分析数据是每个函数入口和出口处的循环计数器的快照,因此我们有一个以亚微秒计时精度注释的调用图。我不想像 gprof 那样只转储函数名称和时间,我正在寻找更容易理解和采取行动的东西。

有没有人使用过一个特别好的分析工具(在任何平台上),它可以很容易地识别要钻取的代码区域?我正在寻找一个鼓舞人心的例子来说明如何显示调用图,但如果有一个输入格式的好工具,我可以按摩我的数据,我会使用它。我可以使用 Windows、Linux 或 MacOS X 来运行可视化工具。

IBM DeveloperWorks 上的分析文章将我引至GraphViz,在他们的网站上有一个profiling 示例。除非这里有其他建议,否则我将使用 GraphViz 并模仿他们的分析示例。

【问题讨论】:

    标签: performance


    【解决方案1】:

    另一个可视化分析数据的简洁工具是gprof2dot.py python script。 它可用于可视化几种不同的格式:“这是一个 Python 脚本,用于将 prof、gprof、oprofile、Shark、AQtime 和 python 分析器的输出转换为点图。”这是输出的样子:


    (来源:googlecode.com)

    【讨论】:

    • 有没有办法支持python3.2?
    【解决方案2】:

    我使用 Kprof http://kprof.sourceforge.net/

    它很旧,但我从未找到更好的工具来检查 gprof 的结果。

    【讨论】:

      【解决方案3】:

      “GTKWave”怎么样? 但是你必须在你的代码中插入探针。

      【讨论】:

      • 有趣的想法,@XC。 - GTKWave 不可视化VCD 文件吗?我已经将gdb 与simulavrxx 模拟器一起使用,但是模拟器在那里为GTKWave 生成​​VCD 转储...如何获得“本地运行”C 程序或Perl 脚本的VCD 转储?
      【解决方案4】:

      Valgrind 进行分析(以及更多),还有GUIs 用于可视化。

      【讨论】:

      • Kcachegrind 是最受欢迎的之一。
      【解决方案5】:

      我建议你放弃 gprof+graphviz for OProfileUI,除非你别无选择。

      【讨论】:

        【解决方案6】:

        JetBrains dotTrace(有一个可以玩的试用演示)。它组织调用堆栈,可以轻松找到问题点。还有很多过滤功能。非常容易导航并找到您要查找的内容。

        【讨论】:

          【解决方案7】:

          IE 8b2 提供了一个 simple display 的 JavaScript 调用树,我认为它比 GraphViz 图表有用得多。

          GraphViz 图表非常适合可视化调用树,但很难可视化时序问题(恕我直言,更重要的数据)。

          **编辑:我认为值得指出的是,所有建议的工具都使用基于网格的树来可视化调用树。这使您可以查看调用结构,而无需像我相信您对 GraphViz 图表所做的那样淡化时序数据。*

          【讨论】:

            【解决方案8】:

            您可以使用 Eclipse 插件Senseo。它向您展示了性能、内存分配、创建的对象、花费的时间、调用的实际方法、将鼠标悬停在方法签名或调用上、调用上下文树、包资源管理器等等。

            【讨论】:

              【解决方案9】:

              我编写了一个基于浏览器的可视化工具profile_eye,它对gprof2dot 的输出进行操作。

              gprof2dot 擅长挖掘许多分析工具的输出,并且在图形元素放置方面做得很好。最终渲染的是静态图形,通常非常杂乱。

              使用d3.js,可以通过相对淡化未聚焦的元素、工具提示和fisheye distortion 来消除大部分混乱。

              为了比较,请参阅canonical example used by gprof2dot 中的profile_eye's visualization。

              【讨论】:

                猜你喜欢
                • 2012-04-09
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2022-08-22
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多