【问题标题】:Open Source Profiling Frameworks?开源分析框架?
【发布时间】:2010-09-18 11:49:16
【问题描述】:

您是否曾经想要测试并定量地展示您的应用程序在静态构建或共享构建、剥离或非剥离、upx 或无 upx、gcc -O2 或 gcc -O3、hash 或 btree 等方面是否会表现得更好等等。如果是这样,这就是你的主题。调整应用程序的方法有数百种,但我们如何收集、组织、处理、可视化每个实验的结果。

几个月来,我一直在寻找一个类似于 Mozilla 的 Perftastic 的开源应用程序性能工程/分析框架,我可以在其中开发/构建/测试/分析数百个不同调优实验的化身。

一些要求:

平台

SUSE32 和 SUSE64

数据格式

非常灵活、紧凑、简单、分层。有几种可能性,包括

数据采集

灵活和可定制的插件。从应用程序中收集大量数据,包括来自 /proc、sys 时间、wall time、cpu 利用率、内存配置文件、泄漏、valgrind 日志、arena 碎片、I/O、localhost 套接字、二进制大小、打开 fds 的性能数据,等等,还有一些来自主机系统。我选择的语言是 Python,我会开发这些插件来监控和/或解析所有不同格式的数据,并将它们存储在框架的数据格式中。

标记

所有实验都将被标记,包括 GCC 版本和编译选项、平台、主机、应用程序选项、实验、构建标签等数据。

绘图

历史、比较、分层、动态和静态。

  • 应用程序构建由自定义 CI 服务器完成,该服务器连续 3 年每天多次发布新应用程序版本。这就是为什么我们需要持续的趋势分析。当我们添加新功能、修复错误、更改构建选项时,我们希望自动收集分析数据并查看趋势。这是需要生成各种静态构建的地方。
  • 用于分析Mozilla dynamic graphs 非常适合做比较图表。在不同标签之间进行比较图表会很棒。例如比较 N 个构建版本、比较平台、比较构建选项等。
  • 我们有一个包含 3K 测试的测试套件,每个测试都会收集数据,并从测试间数据、每个测试、每个标记组到完整的回归套件进行分组。
  • 可能包括RRDToolOrcaGraphite

分组分析

  • 分钟
  • 最大
  • 中位数
  • 平均
  • 标准偏差

演示文稿

所有这些都将通过应用服务器呈现和控制,最好是 Django 或 TG。

灵感

【问题讨论】:

  • 是的,我有。究竟是什么问题?如果有人知道这样的野兽?

标签: python profiling


【解决方案1】:

您可能必须构建您正在寻找的东西,但您可能会从

  • Valgrind
  • 卢克·斯塔克沃克
  • 许多其他开源项目

此外,当目的不是衡量性能而是改进时,您可能会从this获得一些想法,其中this是使用示例。

【讨论】:

    【解决方案2】:

    本周在 PyCon 上进行了一次演讲,讨论了今天 Python 上的各种分析方法。我不认为任何东西都像您所寻找的那样完整,但它可能值得一看。 http://us.pycon.org/2009/conference/schedule/event/15/

    本周晚些时候,您应该可以在 blip.tv 上找到真正的谈话内容 http://blip.tv/search?q=pycon&x=0&y=0

    【讨论】:

      【解决方案3】:

      我不确定您的问题究竟是什么,但是对于分析 Java (web) 应用程序,您可以使用 netbeans profiler 和 profiler4j(可在 sourceforge 上获得)。我都使用过,可以通过 eclipse tptp 推荐它们。

      How to set up Eclipse TPTP

      http://profiler4j.sourceforge.net/

      编辑:抱歉,刚刚注意到您将此标记为 Python 问题,因此这对您来说一定不是有效的答案。

      【讨论】:

      • 收集分析数据只是其中的一部分。我正在寻找一个框架,其中许多分析组件组合在一起,结果类似于graphs.mozilla.org
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-20
      • 2011-07-28
      相关资源
      最近更新 更多