为啥数组随机访问这么快(局部性原理)
作者:互联网
为什么数组能支持随机访问呢?
答案:
- 数组占用的内存空间是连续的
- 数组中都为同一类型的元素
通过上面我们知道了,连续的内存空间跟相同的元素这两大利器决定了数组随机访问的特性。另外还需要补充的是,因为数组在内存空间中是连续的,所以CPU在读取时,可以对数组进行“预读”。什么是预读呢?
CPU在从内存中加载数据时,会先把读取到的数组加载到CPU的缓存中。而CPU每次从内存中读取数据,并不是只读取那个特定的要访问的地址,而是读取一个数据块,并保存到CPU缓存中,然后下次访问内存数据的时候就会先从CPU缓存开始查找,
如果找到就不需要再从内存中取,这样就实现了比直接访问内存更高效的访问机制
标签:读取,为啥,内存空间,访问,内存,数组,局部性,CPU 来源: https://www.cnblogs.com/songshoubin/p/14236578.html