网络日志(2010.5.14)

来源:互联网 发布:人员管理 知乎 部门 编辑:程序博客网 时间:2024/04/28 00:13

上次我谈到我的终极优化器的设想,不小心被嘲笑了。的确,对于整体架构的优化产生的效果比一些小的算法可能更大,或者说大得多。但是我现在单从语言层面来看,这点“优化”还是有作用的。而且要纠正上次说错的地方:不是对算法的优化,而是对运算效果的“重新求解”。编译器连几个小的跳转都不能明白,又怎么能完全解析用户使用了什么算法呢?(别说完全,差不多一点都不能)

上次偶然看到C++之父B. Stroustrup的一条言论,摘录如下:

 

在做小项目时,C优于C++吗?
我认为非也。除了由於缺乏好的C++编译器而导致的问题之外,我从没有看到哪个项目用C会比用C++更合适。(不过现在C++编译器导致的问题还是不可忽略的,当你看到同样功能的C++程序可执行代码体积比C大一倍而且速度慢得多时,会对此有所感触的。--译者)

 

B.S一句话说明了问题,运行结果都是一样的,凭什么C++生成的结果体积大而且速度慢?编译器的错。

那么能说现在的编译器优化方面努力不够吗?当然不。多少专家研究了无数优化方案,理论,进行了多少实践,据说gcc编译个东西要进行几十趟优化。但是很明显这些优化的结果效果没有达到最理想。

 

我想象中的“终极优化器”就是为了达到这个目标而出现的,而且它进行的是根据结果的重构,而不是对源程序中间程序什么的一点点的解读。上次有个优化“针对架构”效果远远好于优化“算法”的想法,其实我这个是针对结果的重构,当然就包括了对架构的重构。虽然现在提出来有点天方夜谭,但是不代表以后就不能实现,以后的事情谁也说不准吧。("当然也不能保证真能实现",说不定我这个想法就是个永动机,谁知道呢?)而我下个阶段的研究就是对这个想法进行重新评估,预计今年前弄出个Sample来。

 

今日一言:

仕事がうまくいかずにいらいらしていたからやった。
しごとがうまくいかずにいらいらしていたからやった。
因为工作进展不顺情绪焦躁才做了这样的事。