В Windows и POSIX-совместимых системах (Linux, OSX и т. Д.) Вы можете рассчитать время в 1 / CLOCKS_PER_SEC (отметки времени) для вызова, используя clock()
, найденное в <ctime>
. Возвращаемым значением этого вызова будет время, прошедшее с момента запуска программы в миллисекундах. Два вызова clock()
могут затем быть вычтены друг из друга для вычисления времени выполнения данного блока кода.
Так, например:
#include <ctime>
#include <cstdio>
clock_t time_a = clock();
//...run block of code
clock_t time_b = clock();
if (time_a == ((clock_t)-1) || time_b == ((clock_t)-1))
{
perror("Unable to calculate elapsed time");
}
else
{
unsigned int total_time_ticks = (unsigned int)(time_b - time_a);
}
Редактировать: вы не сможете напрямую сравнивать время от POSIX-совместимой платформы с платформой Windows, потому что в Windows clock()
измеряет время настенных часов, где, как и в системе POSIX, оно измеряет прошедшее время процессора. Но это функция стандартной библиотеки C ++, и для сравнения производительности между различными блоками кода на одной платформе она должна соответствовать вашим потребностям.