《编程珠玑》阅读笔记——Ⅲ

  因为这本值得慢慢思考,不得放慢阅读速度。现在读完了第二部分,先说一下我思考了很久的例子吧

  书中有一个例子:在search3函数中,为什么 i+=8 能够提升效率呢? 

  我的猜测:在编译器的帮助下,每次循环*一次性*取出8个元素,这样便可以在高速缓存中访问x[i]到x[i+7];而在i+=1的情况下,每次循环都需要重新访问内存。作为一个搞模型的程序员,确实很难考虑到高速缓存和内存之间的存取,难道下一步就是区分一级缓存和二级缓存么?

   书中的有一句是这么说的:对于现代计算机来说,将循环展开则有助于避免管道阻减少分支、增加指令级并行性。  

你可能感兴趣的:(《编程珠玑》阅读笔记——Ⅲ)