У меня есть массив, long matrix[8*1024][8*1024]
и две функции sum1
и sum2
:
long sum1(long m[ROWS][COLS]) {
long register sum = 0;
int i,j;
for (i=0; i < ROWS; i++) {
for (j=0; j < COLS; j++) {
sum += m[i][j];
}
}
return sum;
}
long sum2(long m[ROWS][COLS]) {
long register sum = 0;
int i,j;
for (j=0; j < COLS; j++) {
for (i=0; i < ROWS; i++) {
sum += m[i][j];
}
}
return sum;
}
Когда я выполняю две функции с данным массивом, я получаю время выполнения:
сумма 1: 0,19 с
сумма 2: 1,25 с
Кто-нибудь может объяснить, почему существует такая огромная разница?