Как рассчитать время работы в микросекундах на С++?

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

Необходимое условие: библиотека Chrono на C++.

Задача состоит в том, чтобы рассчитать время работы программы в микросекундах на C++.

Заголовочный файл:

#include<chrono>

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

Chrono — это и заголовочный файл, и даже пространство имен. Все элементы в этом заголовке (за исключением специализаций common_type) определены не непосредственно в пространстве имен std (как и большая часть стандартной библиотеки), а в пространстве имен std::chrono.

Использование duration_cast:

Здесь function_performing_iterations() — это фиктивная функция, которая выполняет итерацию от i=1 до i=10^7. Теперь начнем считать время, написав

auto duration = duration_cast<microseconds>(stop1 - start1);

Теперь, когда компилятор выполняет функцию-> function_performing_iterations(), управление снова возвращается к main(), после чего время останавливается. (Для справки можно предположить, что это гонка, т.е. когда в гонке, как только бегуны начинают бежать, запускается таймер, а когда они достигают финиша, таймер останавливается)

Теперь время рассчитывается как:

auto duration = duration_cast<microseconds>(stop1 - start1);

Наконец, время в микросекундах печатается путем приведения типа к типу double, поскольку нормальное деление a/b возвращает целочисленное значение.

Пример:

Выход:

Time taken in microseconds : 14.963

С помощью библиотеки Boost

Библиотеки Boost предназначены для широкого применения и использования в широком спектре приложений. Например, они полезны для обработки больших чисел, имеющих диапазон, выходящий за пределы типа данных long long, long double (264) в C++.

Монтаж:

Пожалуйста, обратитесь к этой статье для установки наддува. Мы можем скачать zip-файл. После этого нам просто нужно извлечь все в указанную папку GCC, или мы можем сделать это легко с помощью командной строки.

Пример:

Выход: