Получить интервал между 2 операциями с помощью CTME?
Вопрос
Я заинтересован в том, чтобы показать время выполнения программы в C, в разных точках, используя CTME. Я пробовал что -то подобное, но это должно быть не правильно ...
int main() {
time_t tm1, tm2;
tm1 = time(NULL);
sleep(2);
tm2 = ctime(tm1);
printf("%d\n", tm2-tm1);
return 0;
}
У вас есть какие -либо предложения или правильный пример? заранее спасибо
Решение
ctime()
Возвращает строковое представление о прошедшем в него времени.
Если вы хотите простое время, просто:
time_t t1, t2;
t1 = time(0);
sleep(2);
t2 = time(0);
printf("Elapsed: %d\n", t2 - t1);
Видеть man ctime
а также man 2 time
.
Другие советы
Вы можете использовать time
функция, чтобы получить текущее время и difftime
Функция для вычисления разницы в секунды, между двумя разами (обработка ошибок опущена):
time_t t0, t1;
t0 = time(NULL);
foo();
t1 = time(NULL);
printf("foo() took %f seconds.\n", difftime(t1, t0));
Однако, time_t
предназначен для измерения времени календаря. А time
Функция обычно имеет одну секунду. Если это слишком грубо, вы можете попробовать использовать clock_t
и clock
функция (обработка ошибок снова опущена):
clock_t t0, t1;
t0 = clock();
foo();
t1 = clock();
printf("foo() took %f seconds.\n", (double)((t1 - t0) / CLOCKS_PER_SEC));