【发布时间】:2012-10-17 02:04:58
【问题描述】:
可能重复:
Why is my program slow when looping over exactly 8192 elements?
我一直在修改我用来简单地对二维数组的元素求和的程序。一个错字导致了至少在我看来,一些非常奇怪的结果。
处理数组时,矩阵[SIZE][SIZE]:
for(int row = 0; row < SIZE; ++row)
for(int col = 0; col < SIZE; ++col)
sum1 += matrix[row][col];
运行非常快,但是上面的行 sum1... 被修改了:
sum2 += matrix[col][row]
正如我曾经在没有意识到的情况下发生的那样,我注意到我的运行时间显着增加。这是为什么呢?
【问题讨论】:
-
缓存位置。
-
从不将带有数组和循环的 FORTRAN 代码逐字翻译成 C/C++!
标签: c++ arrays multidimensional-array