小编Gre*_*ory的帖子

开源分析框架?

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

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

一些要求:

平台

SUSE32和SUSE64

数据格式

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

数据采集

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

标记

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

制图

历史,比较,层次,动态和静态.

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

分组基础分析

  • 马克斯
  • 中位数
  • 平均
  • 标准偏差
  • 等等

介绍

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

灵感

python profiling

7
推荐指数
1
解决办法
1135
查看次数

在Eclipse中保存时运行外部应用程序

由于我们无法将Eclipse的RSE设置为用于远程编辑的工具,因此我安装了Unison.但是如何让Eclipse在每个文件保存中自动运行unison?是否有可用的eclipse插件?

TIA

eclipse eclipse-plugin unison

4
推荐指数
2
解决办法
2532
查看次数

泡泡破坏者游戏解决者比贪心更好?

对于心理锻炼,我决定尝试解决在许多手机上发现的泡泡破坏者游戏以及这里的一个例子:泡泡破坏游戏

  • 随机(N,M,C)板包括具有C颜色的N行×M列
  • 目标是通过选择最终导致最高分数的泡沫组序列来获得最高分
  • 气泡组是在x或y方向上彼此相邻的2个或更多相同颜色的气泡.对角线不计算在内
  • 挑选一组时,气泡消失,任何孔首先从上方充满气泡,即向下移动,然后通过向右移动填充任何孔
  • 气泡组分数= n*(n - 1)其中n是气泡组中气泡的数量

第一种算法是一种简单的穷举递归算法,它通过逐行和逐列选择气泡组来探索逐行扫描.一旦选择了泡泡组,我们就会创建一个新的电路板并尝试解决该电路板,递归下降

我使用的一些想法包括规范化的记忆.一旦电路板解决了,我们将电路板和最佳分数存储在记忆表中.

在python中创建了一个原型,它显示了一个(2,15,5)板需要8859块板才能在大约3秒内解决.一台(3,15,5)板在50分钟内在服务器上占用12,384,726块板.求解速率约为3k-4k板/秒,随着记忆搜索需要更长时间逐渐减少.记忆表增长到5,692,482个板,达到6,713,566次.

除了详尽的搜索之外,还有哪些其他方法可以获得高分?

我没有看到任何明显的分裂和征服方式.但趋向于越来越大的泡沫团体似乎是一种方法

感谢David Locke发布了一个纸质链接,该链接在一个使用恒定深度前瞻启发式的窗口求解器之上进行讨论.

python language-agnostic algorithm

4
推荐指数
1
解决办法
2931
查看次数

为什么MSVC会在编辑宏时发脾气,而G ++是关于zen的呢?

在MSVC 9.0下,这失败了.在g ++下编译.如果我们取出宏,则非宏版本76-79编译.有任何想法吗?

03: #include <iostream>
04: #include <sstream>
67: #define MAKESTRING(msg, v) \
68:        do { \
69:          std::ostringstream s; \
70:          s << msg; \ 
71:          v = s.str(); \
72:        } while(false)
73:        
74:        int main(void)
75:        { 
76:          std::ostringstream oss;
77:          std::string str;
78:          oss << "foo" << "bar";
79:          str = oss.str();
80:        
81:          MAKESTRING("foo" << "bar", str);
82:         }

testenv.cpp(71) : error C4430: missing type specifier - int assumed. Note: C++ does not support …
Run Code Online (Sandbox Code Playgroud)

c c++ visual-c++

3
推荐指数
1
解决办法
324
查看次数

模式只匹配非模糊的十六进制数字(不是十进制数字)

我们都熟悉的正则表达式为十六进制数字,但什么是一个聪明的正则表达式,只匹配无歧义的十六进制数,但不匹配整数(基数为10 /十进制).例子

  • 1f345 =匹配
  • 0f123 =匹配
  • 12340 =无匹配(模糊十进制,可以是十六进制或十进制)
  • 01234 =无匹配(技术上也不是整数)

它似乎需要两个正则表达式.首先匹配十六进制数(和整数)然后匹配结果至少一个[a-f][A-F].但是有更简单的方法吗?

这样做的应用是将非模糊十六进制数字批量替换为它们的转换十进制版本,同时保留不明确的数字.

python regex perl

-8
推荐指数
1
解决办法
206
查看次数