标签:
因为这本值得慢慢思考,不得放慢阅读速度。现在读完了第二部分,先说一下我思考了很久的例子吧
书中有一个例子:在search3函数中,为什么 i+=8 能够提升效率呢?
我的猜测:在编译器的帮助下,每次循环*一次性*取出8个元素,这样便可以在高速缓存中访问x[i]到x[i+7];而在i+=1的情况下,每次循环都需要重新访问内存。作为一个搞模型的程序员,确实很难考虑到高速缓存和内存之间的存取,难道下一步就是区分一级缓存和二级缓存么?
书中的有一句是这么说的:对于现代计算机来说,将循环展开则有助于避免管道阻减少分支、增加指令级并行性。
标签:
原文地址:http://www.cnblogs.com/123jy/p/4584449.html