开源分析框架?

时间:2008-10-22 07:16:23

标签: python profiling

你有没有想过测试和量化显示你的应用程序是否会更好地作为静态构建或共享构建,剥离或非剥离,upx或没有upx,gcc -O2或gcc -O3,hash或btree等如果是这样,这就是你的主题。调整应用程序有数百种方法,但我们如何收集,组织,处理,可视化每个实验的后果。

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

一些要求:

平台

SUSE32和SUSE64

数据格式

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

数据采集

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

标记

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

作图

历史,比较,等级,动态和静态。

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

分组基础分析

  • 最小
  • 最高
  • 中值
  • 平均
  • 标准偏差

演示

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

启示

3 个答案:

答案 0 :(得分:2)

本周在PyCon上进行了一次讨论,讨论了今天Python上的各种分析方法。我认为没有什么比你想要的更完整,但它可能值得一看。 http://us.pycon.org/2009/conference/schedule/event/15/

你应该能够在本周晚些时候在blip.tv找到实际的谈话 http://blip.tv/search?q=pycon&x=0&y=0

答案 1 :(得分:0)

我不确定您的问题是什么,但是对于分析Java(Web)应用程序,您可以使用netbeans profiler和profiler4j(在sourceforge上可用)。我已经使用了两者并且可以在eclipse tptp上推荐它们。

请参阅How to set up Eclipse TPTP

http://profiler4j.sourceforge.net/

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

答案 2 :(得分:0)

您可能需要构建您正在寻找的内容,但您可以从

开始
  • Valgrind
  • Luke Stackwalker
  • 许多其他开源项目

此外,当衡量 时它是一个使用它的例子。