Страницы

Saturday, October 13, 2012

Проверь себя

Из экзаменов по курсу Software Development в Оксфорде:

 Какая из 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:

  1. Первая, поможет кэш процессора

    ReplyDelete