Определить время работы функции - C (СИ)

Узнай цену своей работы

Формулировка задачи:

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

Решение задачи: «Определить время работы функции»

textual
Листинг программы
#include <windows.h>
#include <stdio.h>
 
int main(int argc, char* argv[])
{
    long tb,te,i,j,s;
 
    tb=GetTickCount();
 
    for (j=0; j<1000; j++)
    {
        s=0;
        for (i=0; i<= 1000000; i++) s+=2*i-1;
    }
 
    te=GetTickCount();
 
    printf("Elapsed time %d (ticks)\n",te-tb);
    return 0;
}

Объяснение кода листинга программы

В этом коде используется функция GetTickCount() для измерения времени выполнения. Код выполняет два прохода по массиву (в общем случае это может быть любое число, в данном случае 1 000 000), причем внутренний цикл выполняет вычисления суммы ряда чисел от 1 до 1 000 000. Счетчик tb инициализируется значением, возвращаемым функцией GetTickCount(), в начале выполнения программы. Затем начинается первый проход по массиву, в котором счетчик s инициализируется нулем. Значение s увеличивается на 2*i-1 для каждого i от 0 до 1 000 000. После первого прохода по массиву, счетчик tb снова инициализируется значением, возвращаемым функцией GetTickCount(). Затем начинается второй проход по массиву, который идентичен первому. После завершения второго прохода по массиву, значение te инициализируется значением, возвращаемым функцией GetTickCount(). Затем вычисляется разница между te и tb, которая выводится на экран. Код возвращает 0, что обычно означает успешное выполнение.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.5 из 5
Похожие ответы