缓存机制(内存和缓存的区别)

缓存机制

在电脑中有一种比内存读入还要快的东西叫做缓存,其定义是对于从内存里读入一个数组时,计算机会预测剩余的连续的部分数组是否会被用到,所以将他存进缓存,这样可以直接按顺序读入,不用查询,更加快。

那么对于我们的二维数组 \(f[i][j]\) 他是以长度为 \(1\times j\)\(i\) 个线段组成一个线性的长链,所以连续的数字之间是 \(f[1][1],f[1][2]\), 而并不是 \(f[1][1],f[2][1]\),

那么推广到我们的 \(for\) 循环上,若我们按照外层 \(i\),内层 \(j\) 的顺序循环,得到的数组就是按照计算机存储顺序调用,因此可以直接从缓存里读入 ,但是当我们反过来,计算机无法预测我们的顺序,即缓存中的数组是无用的(当前),那么只能调用内存,时间的差距大约在 \(10\)左右

所以说对于循环的枚举顺序关系到时间复杂度是很重要的.尤其是矩阵乘除,不同的运输顺序造成的极值可达 \(4\) 倍,这就是后几个点被卡的原因,特别亏。

posted @ 2021-02-17 11:30  zxsoul  阅读(484)  评论(1编辑  收藏  举报