CLOCKS_PER_SEC
- это константа, объявленная в <time.h>
. Чтобы получить процессорное время, используемое задачей в приложении C, используйте:
clock_t begin = clock();
/* here, do your time-consuming job */
clock_t end = clock();
double time_spent = (double)(end - begin) / CLOCKS_PER_SEC;
Обратите внимание, что это возвращает время как тип с плавающей запятой. Это может быть более точным, чем секунда (например, вы измеряете 4,52 секунды). Точность зависит от архитектуры; в современных системах вы легко получаете 10 мс или меньше, но на старых машинах Windows (из эпохи Win98) оно было ближе к 60 мс.
clock()
- стандарт C; это работает "везде". Существуют системные функции, такие как getrusage()
в Unix-подобных системах.
Java System.currentTimeMillis()
не измеряет одно и то же. Это «настенные часы»: они могут помочь вам измерить, сколько времени потребовалось для выполнения программы, но они не сообщают вам, сколько процессорного времени было использовано. В многозадачных системах (то есть во всех них) они могут сильно различаться.