Неверный вывод измерения времени с 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
Кто-нибудь знает, почему это происходит?