Я пытаюсь выполнить некоторые измерения производительности в c ++, измеряя реальное время в миллисекундах по сравнению с временем процессора в миллисекундах.Вот как выглядит мой код:
auto start = std::chrono::high_resolution_clock::now();
unsigned begin = clock();
// some computationally expensive task
auto finish = std::chrono::high_resolution_clock::now();
unsigned end = clock();
(finish - start).count();
int duration = std::chrono::duration_cast<std::chrono::milliseconds>(finish - start).count();
int cpu_duration = 1000*(end - begin)/(CLOCKS_PER_SEC);
Теперь я ожидаю, что значение времени процессора будет меньше системного времени, потому что поток может быть прерван.Однако время процессора в 2-3 раза больше, чем в реальном времени.Я делаю что-то не так или я неправильно понимаю концепцию времени процессора?