CppCoreGuidelines Per.19 以可推断的方式访问内存
15 June 2023
“Access memory predictably”
理由
缓存效率对性能至关重要。缓存算法能较好优化简单的线性内存访问。
例子
int matrix[rows][cols]; // bad for (int c = 0; c < cols; ++c) for (int r = 0; r < rows; ++r) sum += matrix[r][c]; // good for (int r = 0; r < rows; ++r) for (int c = 0; c < cols; ++c) sum += matrix[r][c];
二维数组在内存中以行为单位,平铺展开。所以以行为单位进行访问,可以利用缓存算法,优化性能。