Из экзаменов по курсу 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; }
Первая, поможет кэш процессора
ReplyDelete