7

您是否曾经想测试并定量地显示您的应用程序作为静态构建或共享构建、剥离或非剥离、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 动态图非常适合做比较图。在不同标签之间进行比较图表会很棒。例如比较 N 个构建版本、比较平台、比较构建选项等。
  • 我们有一个包含 3K 测试的测试套件,每个测试都会收集数据,并从测试间数据到每个测试、每个标记组,再到完整的回归套件进行分组。
  • 可能性包括RRDToolOrcaGraphite

分组分析

  • 最大限度
  • 中位数
  • 平均
  • 标准差
  • ETC

介绍

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

灵感

4

3 回答 3

2

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

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

于 2009-03-30T06:14:29.560 回答
0

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

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

于 2009-10-30T11:37:11.203 回答
0

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

请参阅如何设置 Eclipse TPTP

http://profiler4j.sourceforge.net/

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

于 2008-10-22T13:05:50.823 回答