Как узнать время работы программы c chrono

Содержание

C++ — очень популярный язык программирования, предоставляющий разработчикам широкий спектр возможностей. Одной из таких важных особенностей является хроно библиотека, которая используется для функций, связанных со временем. хроно Библиотека была впервые представлена ​​в C++11 и с тех пор стала основным компонентом для разработчиков, работающих над приложениями, требующими точности во времени.

Эта статья призвана продемонстрировать использование хроно библиотека на С++

Прежде чем перейти к использованию библиотеки chrono в C++, лучше получить некоторые сведения об этом.

Что такое хроно в С++?

хроно — это встроенная библиотека C++, которая позволяет пользователям легко управлять датой и временем. Он обеспечивает высокоточное время и поддержку часов. С хроно, разработчики могут создавать программы, зависящие от времени, например календари, напоминания и часы.

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

CppCon 2016: Howard Hinnant “A <chrono> Tutorial»

Как использовать библиотеку хроно в С++?

Чтобы использовать хроно библиотеку, вам нужно включить ее в свой код, добавив строку #включать . Как только это будет сделано, вы сможете получить доступ к функциям библиотеки, используя пространство имен std:: chrono. Это пространство имен предоставит вам необходимые инструменты для выполнения операций, связанных со временем, таких как измерение временных интервалов и планирование событий.

хроно библиотека может измерять время в:

Утилиты библиотеки хроно на C++

хроно библиотека определяет три основные утилиты:

1: Часы

Часы являются важной утилитой, предоставляемой хроно библиотека на С++. Они предлагают структуру, которая сравнивает момент времени с реальным физическим временем. хроно Библиотека определяет три основных типа часов: системные часы, часы с высоким разрешением и постоянные часы.

  • Системные часы представляют собой глобальные настенные часы, и на них влияют изменения системного времени. Его синтаксис: «хроно:: системные_часы».
  • Стабильные часы, с другой стороны, изображают часы с монотонным увеличением, на которое не влияют изменения системного времени. Его синтаксис: «хроно:: Steady_Clock“. Он специально разработан для расчета промежутков времени, работает непрерывно, и время идет одинаково с каждым ударом часов.
  • Часы с высоким разрешением, как следует из названия, — это часы в системе с наименьшим периодом тактов. Его синтаксис: «хроно:: high_resolution_clock“.
Читайте также:
Bnovo отзывы о программе

Все эти часы обеспечивают различные способы измерения времени и могут использоваться в соответствии с потребностями разработчика.

2: Продолжительность

Объект длительности использует количество, такое как минута, два часа или десять миллисекунд, для указания периода времени. Длительность — это временной интервал, разделяющий две временные точки, с отметкой, обозначающей одну единицу времени. Это охватывает временные интервалы, такие как 20 миллисекунд, 20 часов или 20 секунд. Например, «22 секунды» можно представить как продолжительность, добавив 22 тика к единице времени в 1 секунду.

C++ Chrono Time Library Tutorial In 12minutes ⌛

3: Очки времени

Объект time_point представляет собой комбинацию длительности и часов, которая представляет конкретный момент времени. Эпоха — это точка отсчета времени, используемая часами, и все объекты time_point, использующие одни и те же часы, имеют одну и ту же эпоху. Объект time_point хранит продолжительность и тип часов, относящихся к эпохе. Точность точки времени зависит от используемых часов и может варьироваться от произвольно грубой до очень точной.

Точки времени используются для представления определенных моментов времени, и их можно использовать для выполнения вычисления, такие как нахождение разницы во времени между двумя временными точками или добавление длительности к момент времени.

Простая программа для реализации хроно на C++

В следующей программе показана реализация хроно в С++:

авто время начала = станд. :: хроно :: системные_часы :: сейчас ( ) ;

станд. :: this_thread :: sleep_for ( станд. :: хроно :: секунды ( 2 ) ) ;

авто время окончания = станд. :: хроно :: системные_часы :: сейчас ( ) ;

станд. :: хроно :: продолжительность < двойной >пройденное время = время окончания — время начала ;

Вышеуказанная программа включает в себя три библиотеки: iostream, хроно, и нить. Он создает переменные для записи времени начала и окончания, используя std:: chrono:: system_clock:: функция now(), приостанавливает работу программы на 2 секунды с помощью функции std:: this_thread:: sleep_for, вычисляет прошедшее время вычитая время начала и окончания, и печатает результат в секундах, используя std:: cout и count() функция.

Заключение

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

Читайте также:
Типы файлов запускающих программы

Источник: ciksiti.com

Как использовать Chrono для определения времени выполнения

Я хочу определить, какой контейнер лучше использовать для определенных операций, поэтому я должен проверить время выполнения вектора по сравнению с списком. Ссылки в Интернете были довольно неопределенными или слишком сложными для этой реализации. Любая помощь будет оценена

user3504476 14 сен. 2014, в 21:10
Поделиться

Вы имеете в виду «Как измерить время выполнения» или «Как измерить время, необходимое для компиляции»? Как правило, я использую команду типа time myprog или time g++ myprog.cpp для измерения времени, но это предполагает, что это достаточно длительное время выполнения — не менее секунды или двух.

Mats Petersson 14 сен. 2014, в 18:23

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

Some programmer dude 14 сен. 2014, в 18:23
Как бы я получить соответствующее время начала и окончания?
HerculesStrydom 14 сен. 2014, в 18:27
Показать ещё 1 комментарий

Поделиться:
compiler-optimization

3 ответа

Вот как я его использую:

#include #include auto start = std::chrono::high_resolution_clock::now(); . code to measure here . auto diff = std::chrono::high_resolution_clock::now() — start; auto t1 = std::chrono::duration_cast(diff); std::cout

Вам нужно будет скомпилировать это с помощью g++ -std=c++11 , и пока у вас есть рабочий компилятор и библиотека С++ 11, это должно сработать.

Mats Petersson 14 сен. 2014, в 17:18
Поделиться

steady_clock этого я бы использовал steady_clock , high_resolution_clock может измениться, если изменить системное время во время выполнения, хотя, вероятно, этого никогда не произойдет .

vsoftco 14 сен. 2014, в 18:33

Не то, что я (или моя система) делает очень часто . Я ожидаю, что часы с высоким разрешением, по крайней мере, в некоторых системах, дают более высокое разрешение, и, по крайней мере, в некоторых случаях, это более важно. Но я признаю, что только что скопировал это из некоторого кода, который у меня был, не задумываясь о том, какие могут быть различные источники тактовых импульсов, и об их преимуществах / недостатках.

Mats Petersson 14 сен. 2014, в 18:37

Да, я также использовал до high_resolution_clock, но у меня была проблема, когда мне приходилось планировать симуляцию, которая занимала около 2 дней, а какой-то парень просто менял время на стене. И кажется, что, как вы сказали, (хотя и не гарантировано стандартом), оба имеют одинаковую точность.

Читайте также:
Как написать программу для рулетки

vsoftco 14 сен. 2014, в 18:39

Я только использовал это для вещей, которые занимают несколько секунд или минут. Для вещей, которые занимают какое-то время, я обычно просто использовал стандартное time (что также имеет ту же проблему, что вы описали, конечно). Или инструмент командной строки time в Linux — избавляет от необходимости менять код .

Mats Petersson 14 сен. 2014, в 18:42

предоставлено, я полагаю, что вы используете устойчивый_клок, если вы действительно параноик, что что-то может произойти во время выполнения: D

Источник: overcoder.net

Русские Блоги

C ++ 11 -Использование STD :: Chrono Computing Program, время работы функции

1 Используйте Std :: Chrono для расчета времени работы программы

Справочный код заключается в следующем:

#include #include #include void Run() for (int i = 0; i 1000000000; ++i) > > int main() auto beforeTime = std::chrono::steady_clock::now(); Run(); auto afterTime = std::chrono::steady_clock::now(); std::cout <«Общее время:» ::endl; //второй double duration_second = std::chrono::durationdouble>(afterTime — beforeTime).count(); std::cout <«второй» ::endl; // миллисекундный уровень double duration_millsecond = std::chrono::durationdouble, std::milli>(afterTime — beforeTime).count(); std::cout <«Millisecond» ::endl; // прекрасный уровень double duration_microsecond = std::chrono::durationdouble, std::micro>(afterTime — beforeTime).count(); std::cout <«Микросекунда» ::endl; // nano -seconds double duration_nanosecond = std::chrono::durationdouble, std::nano>(afterTime — beforeTime).count(); std::cout <«Нэн секунды» ::endl; getchar(); return 0; >

Если вам интересно, вы можете посетить мою станцию:https://www.stubbornhuang.com, Вас ждет больше сухих товаров!

Интеллектуальная рекомендация

Развернуть проект node.js под управлением npm в vCloudLabs

vCloudLabs — это сервер облачных вычислений, предоставляемый WMWare, по аналогии с Heroku, вы можете загружать на сервер свои собственные приложения. Подробнее см. следующий пост http://www.iteye.com/.

VS2013 добавил модель данных сущности ОШИБКА: Компиляция и преобразование: не удалось найти файлы метаданных «EntityFramework.dll», «Microsoft.Data.Entity.Design.dll»

1. Откройте переменную среды: Ниже файл, на который указывает значение переменной VS120COMNTOOLS, не существует или внутри файла IDE нет (значение переменной может отличаться от моего, какой бы путь в.

Buuctf: Проблемы Платты

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

Недавно я делал игру на pygame, и было больно, что макет нельзя предварительно просмотреть, поэтому я сделал помощника по макету с PB

Программа использует множество операций с окнами данных, друзья, которые хотят подробно изучить dw, могут обратиться к Загрузка исходного кода программы:https://download.csdn.net/download/wosind/11217.

Tensorflow глубокое обучение на основе прогнозирования букв на основе RNN (одноразовая система с мульти -буквальным прогнозом)

существуетTensorFlow глубокое обучение Описание Описание Процесс расчета циркуляции и процесс расчета цикла (ультраугольный)иTensorflow глубокое обучение на основе прогнозирования букв на основе RNN (.

Источник: russianblogs.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru