Получить интервал между 2 операциями с помощью CTME?

StackOverflow https://stackoverflow.com/questions/5844570

  •  27-10-2019
  •  | 
  •  

Вопрос

Я заинтересован в том, чтобы показать время выполнения программы в 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));
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top