Из экзаменов по курсу Software Development в Оксфорде:
Какая из 2-х функций будет работать быстрее и почему (компилятор - без оптимизации):
Какая из 2-х функций будет работать быстрее и почему (компилятор - без оптимизации):
void zeroarray1(double * A)
{
int i, j;
for (i = 0; i < 1024; i++)
for (j = 0; j < 1024; j++)
A[i * 1024 + j] = 0.0;
}
void zeroarray2(double * A)
{
int i, j;
for (j = 0; j < 1024; j++)
for (i = 0; i < 1024; i++)
A[i * 1024 + j] = 0.0;
}
1 comment:
Первая, поможет кэш процессора
Post a Comment