Неверный вывод измерения времени с MacOS, C, VirtualBox и time.h

Я провожу эксперимент с производительностью с VirtualBox, но со временем происходит нечто очень странное, когда я пытаюсь измерить его с помощью clock (). Каким-то образом результат этого метода меньше, чем результат time () (и, видимо, правильный). Следующие результаты получены без работы виртуальной машины.

#include <stdio.h>
#include <time.h>
int main()
{   
    clock_t start, end;
    double cpu_time_used;
    long int i = 0;
    time_t start_t = time(NULL);
    printf("%d\n", start_t);
    start = clock();
    while (i<1000000000){
        if(i%100==0)
            printf("%d\n", i);
        i++;
    }
    end = clock();
    printf("Time spent: %g seconds (time)\n", (double)(time(NULL)-start_t));
    cpu_time_used = ((double) (end - start)) / CLOCKS_PER_SEC;
    printf("Time spent: %g seconds (clock)\n", cpu_time_used);
    return 0;
}

Выход:

Time spent: 41 seconds (time)
Time spent: 26.9069 seconds (clock)

система:

Macbook Pro 13 mid-2012
OS: MacOS Sierra (10.12.4)
Processor: 2,5GHz Intel Core i5 (4 cores)
Memory: 4GB (1600MHz DDR3) 
HD: SSD 240GB

Кто-нибудь знает, почему это происходит?

0 ответов

Другие вопросы по тегам