首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 系统运维 >

读书笔记: optimizing program performance<computer system a programmer perspective

2012-12-23 
读书笔记: optimizing program performancecomputer system a programmer perspective文章仅仅使用了O1

读书笔记: optimizing program performance<computer system a programmer perspective>

文章仅仅使用了O1的优化级别,即使这样作者也可以写出相当于O3的速度的代码甚至比这个还要高, 编译器本身的优化已经很可观了,但是还是不如写得谨慎的代码,因为编译器每做一个优化都要很小心,担心会不会有负面效果,它不能完全的优化到最优的代码组合的程度。

1. optimize blocker 有一些会阻碍编译器自动的优化代码,

    a) memory aliasing,就是当两个指针指向同一内存的时候,

acc = (acc OP data[i]) OP data[i+1]; // 先算后面两个acc = acc OP (data[i] OP data[i+1]);
这个理解起来比较困难,之所以可以提高效率,是因为第二次循环的后面的两个相乘,可以和第一次循环的前面的两个相乘同步进行。


7. 一些限制优化的因素

    a) 由于寄存器的数目的限制,不可能无限的并行,如果过多的像利用pileline并行,反而会导致这个数据被塞到stack上,反而使效率变差,所有并行多少个比较合适,依赖不同的CPU的类型。

    b)分支预测错误。



热点排行