Как измерить прошедшее время в C++?

Опубликовано: 20 Февраля, 2023

Измерение затраченного времени является общим требованием для большинства пакетов разработки программного обеспечения. Он используется для определения эффективности программы и дает представление о том, какие части программы занимают столько времени. Это помогает оптимизировать код, что улучшает время его выполнения. В этой статье вы узнаете, как измерить прошедшее время в C++.

* В процессе будет использоваться функция high_resolution_clock::now заголовочного файла хроно. Этот заголовочный файл может отсутствовать в старых версиях GCC.

Измерение прошедшего времени

Для измерения прошедшего времени будут собраны две метки времени. Один в начале кода, другой в конце. Затем мы вычтем две метки времени, и разница во времени между ними предоставит нам прошедшее время.

Выход:

Elapsed Time: 116

Объяснение: Были импортированы соответствующие файлы заголовков. В начале основного кода метка времени берется вызовом функции high_resolution_clock::now, и данные сохраняются в переменной beg. После чего должен прийти собственно код, прошедшее время которого нужно измерить. Для демонстрации запускается цикл от 0 до 50000, который ничего не делает в своем теле. Это делается для создания события, которое занимает некоторое время. После чего выполняется еще один вызов функции high_resolution_clock::now и возвращаемые данные сохраняются в переменной end.

После чего получается разница между переменной end и переменной beg , и результат приводится с точностью до миллисекунд в операторе duration_cast<microseconds>(end – beg) . Это дает нам время, прошедшее между первым вызовом функции часов и последним вызовом. В конце прошедшее время отображается с помощью функции подсчета .

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