Cache Line 的理解
发布网友
发布时间:2023-02-19 22:14
我来回答
共1个回答
热心网友
时间:2023-10-19 17:51
Cache Line 是 CPU 和主存之间数据传输的最小单位。
Cache Line 常见大小为64字节,会在传输数据的时候,从内存中连续取64字节的数据。
举个例子来加深下印象。
从时间复杂度上来看,两者是一样的。按道理来说,他们的执行时间应该是差不多的。但实际上,却差了好几倍第一第一种方式: Loop time:21ms<br />第二种方式: Loop time:61ms
数组内存中的顺序。
第一种遍历方式,即按照内存顺序遍历。
所以,在从内存中读取数据的时候,会读取连续的数据到cpu的缓存中。所以会非常快。
第二种遍历方式,并没按照内存顺序读取,而是跳着读取的。
arr[0][0]
arr[1][0]
arr[2][0]
…
这样访问顺序对于cpu的高速缓存并不友好。 每次加载到 CacheLine的数据只用到了其中一个,导致总是去内存读取数据。