Рубрики

Как измерить время, затраченное на функцию в C?

Чтобы вычислить время, затрачиваемое процессом, мы можем использовать функцию clock (), которая доступна time.h. Мы можем вызвать функцию часов в начале и конце кода, для которого мы измеряем время, вычтя значения , а затем разделите на CLOCKS_PER_SEC (количество тактов в секунду), чтобы получить время процессора, как показано ниже.

     #include <time.h>
     
     clock_t start, end;
     double cpu_time_used;
     
     start = clock();
     ... /* Do the work. */
     end = clock();
     cpu_time_used = ((double) (end - start)) / CLOCKS_PER_SEC;

Ниже приведен пример программы на C, где мы измеряем время, затрачиваемое fun (). Функция fun () ожидает завершения нажатия клавиши ввода.

/ * Программа для демонстрации времени, затраченного функцией fun () * /
#include <stdio.h>
#include <time.h>

  
// Функция, которая завершается при нажатии клавиши ввода

void fun()

{

    printf("fun() starts \n");

    printf("Press enter to stop fun \n");

    while(1)

    {

        if (getchar())

            break;

    }

    printf("fun() ends \n");

}

  
// Основная программа вызывает fun () и измеряет время, затраченное fun ()

int main()

{

    // Рассчитать время, затраченное fun ()

    clock_t t;

    t = clock();

    fun();

    t = clock() - t;

    double time_taken = ((double)t)/CLOCKS_PER_SEC; // в секундах

  

    printf("fun() took %f seconds to execute \n", time_taken);

    return 0;

}

Вывод: следующий вывод получается после ожидания около 4 секунд и затем нажатия клавиши ввода.

fun() starts
Press enter to stop fun

fun() ends
fun() took 4.017000 seconds to execute

Как найти время, затрачиваемое командой / программой на Linux Shell?

Ссылки:
http://www.gnu.org/software/libc/manual/html_node/CPU-Time.html
http://www.cplusplus.com/reference/ctime/clock/?kw=clock

Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.

Рекомендуемые посты:

Как измерить время, затраченное на функцию в C?

0.00 (0%) 0 votes