Я проходил циклы и обнаружил существенную разницу в доступе к циклам. Я не могу понять, в чем причина такого различия в обоих случаях?
Первый пример:
Время выполнения; 8 секунд
for (int kk = 0; kk < 1000; kk++)
{
sum = 0;
for (int i = 0; i < 1024; i++)
for (int j = 0; j < 1024; j++)
{
sum += matrix[i][j];
}
}
Второй пример:
Время выполнения: 23 секунды
for (int kk = 0; kk < 1000; kk++)
{
sum = 0;
for (int i = 0; i < 1024; i++)
for (int j = 0; j < 1024; j++)
{
sum += matrix[j][i];
}
}
Что вызывает так много разницы во времени выполнения, просто обмениваясь
matrix[i][j]
to
matrix[j][i]
?