引子
先看以下一段代码及其输出结果:
思考
第一个循环的次数为 ,而第二个循环的次数为 ,循环次数相差了四倍,用时却几乎相同!
原因
首先我们需要了解下计算机的缓存结构
- cpu进行计算时,所有的数据都从 CPU Cache(高速缓存)之中读取。若 CPU Cache 中无数据,则再将数据从内存读取到 CPU Cache
- CPU Cache 与 内存 进行一次交互时,使用 CacheLine (大小为64Bytes) 存储一次交互的数据
对于上图程序中的数组
先看以下一段代码及其输出结果:
第一个循环的次数为 ,而第二个循环的次数为 ,循环次数相差了四倍,用时却几乎相同!
首先我们需要了解下计算机的缓存结构
- cpu进行计算时,所有的数据都从 CPU Cache(高速缓存)之中读取。若 CPU Cache 中无数据,则再将数据从内存读取到 CPU Cache
- CPU Cache 与 内存 进行一次交互时,使用 CacheLine (大小为64Bytes) 存储一次交互的数据
对于上图程序中的数组