Файл: Как найти время работы программы на С.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 23.11.2023

Просмотров: 15

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

http://cppstudio.com/post/468/


Как найти время работы программы на С++


У многих начинающих программистов рано или поздно возникает вопрос: «Как найти время работы программы?». В интернете много ответов на данный вопрос: написать свой мини-дебаггер, посчитать количество тактов и т. д. Самый простой вариант — это посчитать разницу между начальным временем и конечным. То есть, есть начальное значение времени, после которого объявлен фрагмент кода, время выполнения которого необходимо измерить. После фрагмента кода фиксируется ещё одно, конечное, значение времени. После чего, из конечного значения времени вычитаем начальное время и получим время, за которое выполнился измеряемый фрагмент кода или вся программа. Время работы программы  необходимо найти для того, чтобы проверить, насколько эффективнее стал работать отдельный алгоритм или программа в целом! Как это сделать,смотрите ниже.

// Как найти время работы фрагмента кода?

  

// заголовочный файл с прототипом функции clock()

#include  

//         ...

    unsigned int start_time =  clock(); // начальное время

    // здесь должен быть фрагмент кода, время выполнения которого нужно измерить

    unsigned int end_time = clock(); // конечное время

    unsigned int search_time = end_time - start_time; // искомое время

Фрагмент с печатью времени работы любого фрагмента программы.

1

2

3

4

5

6

7

8

9

// Как найти время работы фрагмента кода?

 

// заголовочный файл с прототипом функции clock()

#include

//         ...

    unsigned int start_time =  clock(); // начальное время

    // здесь должен быть фрагмент кода, время выполнения которого нужно измерить

    unsigned int end_time = clock(); // конечное время

    unsigned int search_time = end_time - start_time; // искомое время

cout << "runtime = " << search_time << endl; // время работы программы или фрагмента программы                  

Для того, чтобы найти время работы программы, нужно воспользоваться функцией clock(). Прототип функции clock()находится в заголовочном файле , который нужно подключить, строка 4. Функция clock() возвращает значение времени в миллисекундах (1с = 1000млс). Причём  отсчёт времени начинается с момента запуска программы. Если надо измерить работу всей программы, то в конце программы, перед оператором return 0;  нужно запустить функцию clock(), которая покажет рабочее время. Для поиска времени работы фрагмента кода нужно найти разницу между конечным и начальным временем, как показано выше.

1

2

3

4

5

6

7

// Как найти время работы программы?

 

    // заголовочный файл с прототипом функции clock()

    #include

    //         ...

    // здесь должен быть код программы, время выполнения которой нужно измерить

    unsigned int end_time = clock(); // время работы программы

Microsoft Visual Studio 18+Полно­функ­циональная среда разра­ботки. Покупайте у офици­ального партнера! vstudio.softline.ruСкрыть рекламу:Не интересуюсь этой темойНавязчивое и надоелоСомнительного содержания или спамМешает просмотру контента

Спасибо, объявление скрыто.

Яндекс.Директ

Разработаем программу, в которой с помощью функции clock() вычислим время работы программы. Программа ищет минимальное значение в массиве размером в 200000 элементов. Размер массива специально выбран большим, для того, чтобы было заметно, как работает программа. Так как числа генерируются случайно, то при каждом запуске получается новый случай, и время может не совпадать. К тому же, время выполнения программы зависит от того, насколько загружен компьютер и от того, какая у компьютера вычислительная мощность. На разных машинах по-разному  будет затрачиваться время на выполнение программы, на более мощных компьютерах затрачиваемое время будет меньше и наоборот.

  • MVS

  • Code::Blocks

  • Dev-C++

  • QtCreator

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

// runtime.cpp: определяет точку входа для консольного приложения.

// Как найти время работы программы?

 

#include "stdafx.h"

#include

#include                     

using namespace std;

 

int main(int argc, char* argv[])

{

    srand(time(0));

    const int array_size = 200000; // размер одномерного массива

    int array1[array_size]; // объявление одномерного массива

    for (int counter = 0; counter < array_size; counter++)

    {

     array1[counter] = rand() % 50 - rand() % 50; // заполняем массив случайными значениями в диапазоне от -49 до 49 включительно

     cout << array1[counter] << " "; // печать элементов одномерного массива array1

    }

    int min = array1[0]; // переменная для хранения минимального значения

    for (int counter = 1; counter < array_size; counter++)

    {

     if ( min > array1[counter] ) // поиск минимального значения в одномерном массиве

         min = array1[counter];

    }

    cout << "\nmin = " << min << endl;

    cout << "runtime = " << clock()/1000.0 << endl; // время работы программы                  

    system("pause");

    return 0;

}

В строке 26 запускается функция clock(), которая скажет сколько потребовалось время программе. Разбирать алгоритм поиска не нужно, так как это совсем другая тема. Главное, нужно понять, как использовать функцию clock(), для поиска времени работы программы или отдельного фрагмента кода. А именно, в строке 26, после основного кода программы, но до оператора return 0; объявлена функция clock(), которая вернёт значение времени. Результат работы программы (см. Рисунок 1).