我最近在阅读C文本的一些介绍时遇到了这个例子。没有解释为什么下面的代码在缓存友好性方面是不同的,我无法弄清楚差异。案文如下:
比较这两个代码:
// cache-friendly
int i, j;
for (i = 0; i < 10; ++i)
{
for (j = 0; j < 20; ++j)
{
a[i][j] += 10;
}
}
VS
// not cache-friendly
int i, j;
for (j = 0; j < 20; ++j)
{
for (i = 0; i < 10; ++i)
{
a[i][j] += 10;
}
}
有人看到为什么代码A与代码B相比是缓存友好的吗?