你有没有想过测试和定量显示你的应用程序是否会更好地作为静态构建或共享构建,剥离或非剥离,upx或没有upx,gcc -O2或gcc -O3,hash或btree等等.如果所以这是你的主题.调整应用程序有数百种方法,但我们如何收集,组织,处理和可视化每个实验的后果.
我一直在寻找几个月的开源应用程序性能工程/概要分析框架,其概念类似于Mozilla的Perftastic,我可以开发/构建/测试/分析数百个不同调优实验的化身.
一些要求:
SUSE32和SUSE64
非常灵活,紧凑,简单,分层.有几种可能性,包括
灵活且可定制的插件.从应用程序收集大量数据,包括来自/ proc的系统数据,系统时间,挂壁时间,CPU利用率,内存配置文件,泄漏,valgrind日志,竞技场碎片,I/O,localhost套接字,二进制大小,开放fds,等等一些来自主机系统.我选择的语言是Python,我会开发这些插件来监视和/或解析所有不同格式的数据,并将它们存储在框架的数据格式中.
所有实验都将被标记,包括GCC版本和编译选项,平台,主机,应用程序选项,实验,构建标记等数据.
历史,比较,层次,动态和静态.
所有这些都将通过app服务器呈现和控制,最好是Django或TG.
由于我们无法将Eclipse的RSE设置为用于远程编辑的工具,因此我安装了Unison.但是如何让Eclipse在每个文件保存中自动运行unison?是否有可用的eclipse插件?
TIA
对于心理锻炼,我决定尝试解决在许多手机上发现的泡泡破坏者游戏以及这里的一个例子:泡泡破坏游戏
第一种算法是一种简单的穷举递归算法,它通过逐行和逐列选择气泡组来探索逐行扫描.一旦选择了泡泡组,我们就会创建一个新的电路板并尝试解决该电路板,递归下降
我使用的一些想法包括规范化的记忆.一旦电路板解决了,我们将电路板和最佳分数存储在记忆表中.
我在python中创建了一个原型,它显示了一个(2,15,5)板需要8859块板才能在大约3秒内解决.一台(3,15,5)板在50分钟内在服务器上占用12,384,726块板.求解速率约为3k-4k板/秒,随着记忆搜索需要更长时间逐渐减少.记忆表增长到5,692,482个板,达到6,713,566次.
除了详尽的搜索之外,还有哪些其他方法可以获得高分?
我没有看到任何明显的分裂和征服方式.但趋向于越来越大的泡沫团体似乎是一种方法
感谢David Locke发布了一个纸质链接,该链接在一个使用恒定深度前瞻启发式的窗口求解器之上进行讨论.
在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) 我们都熟悉的正则表达式为十六进制数字,但什么是一个聪明的正则表达式,只匹配无歧义的十六进制数,但不匹配整数(基数为10 /十进制).例子
1f345
=匹配0f123
=匹配12340
=无匹配(模糊十进制,可以是十六进制或十进制)01234
=无匹配(技术上也不是整数)它似乎需要两个正则表达式.首先匹配十六进制数(和整数)然后匹配结果至少一个[a-f][A-F]
.但是有更简单的方法吗?
这样做的应用是将非模糊十六进制数字批量替换为它们的转换十进制版本,同时保留不明确的数字.