如何存储数组以适应缓存行大小

时间:2016-06-01 21:11:21

标签: c performance cpu cpu-cache cpu-speed

我希望有一个包含32位64位数字元素的数组,如下所示: long int arr [32];

但是我的缓存行大小是64字节。这是否意味着我的数组不会完全进入缓存系统,或者更确切地说某些元素会这样做?

如果我将数组拆分为二维,这样可以帮助适应缓存: long int arr [4] [8]; ?

1 个答案:

答案 0 :(得分:1)

  1. 您的数组是256个字节,因此它不适合一个64字节的缓存行。
  2. 分割你的阵列不会减小它的大小,所以#1仍然适用。
  3. 您的CPU有多个缓存行,因此很可能256个字节适合您担心的任何缓存。