C++ — очень популярный язык программирования, предоставляющий разработчикам широкий спектр возможностей. Одной из таких важных особенностей является хроно библиотека, которая используется для функций, связанных со временем. хроно Библиотека была впервые представлена в C++11 и с тех пор стала основным компонентом для разработчиков, работающих над приложениями, требующими точности во времени.
Эта статья призвана продемонстрировать использование хроно библиотека на С++
Прежде чем перейти к использованию библиотеки chrono в C++, лучше получить некоторые сведения об этом.
Что такое хроно в С++?
хроно — это встроенная библиотека C++, которая позволяет пользователям легко управлять датой и временем. Он обеспечивает высокоточное время и поддержку часов. С хроно, разработчики могут создавать программы, зависящие от времени, например календари, напоминания и часы.
хроно также помогает программистам отслеживать, сколько времени прошло между различными событиями или действиями. Это выгодно для разработчиков, которым требуются точные и надежные измерения времени в своих приложениях. Он измеряет время в секундах, миллисекундах, микросекундах и наносекундах.
CppCon 2016: Howard Hinnant “A <chrono> Tutorial»
Как использовать библиотеку хроно в С++?
Чтобы использовать хроно библиотеку, вам нужно включить ее в свой код, добавив строку #включать . Как только это будет сделано, вы сможете получить доступ к функциям библиотеки, используя пространство имен std:: chrono. Это пространство имен предоставит вам необходимые инструменты для выполнения операций, связанных со временем, таких как измерение временных интервалов и планирование событий.
хроно библиотека может измерять время в:
Утилиты библиотеки хроно на C++
хроно библиотека определяет три основные утилиты:
1: Часы
Часы являются важной утилитой, предоставляемой хроно библиотека на С++. Они предлагают структуру, которая сравнивает момент времени с реальным физическим временем. хроно Библиотека определяет три основных типа часов: системные часы, часы с высоким разрешением и постоянные часы.
- Системные часы представляют собой глобальные настенные часы, и на них влияют изменения системного времени. Его синтаксис: «хроно:: системные_часы».
- Стабильные часы, с другой стороны, изображают часы с монотонным увеличением, на которое не влияют изменения системного времени. Его синтаксис: «хроно:: Steady_Clock“. Он специально разработан для расчета промежутков времени, работает непрерывно, и время идет одинаково с каждым ударом часов.
- Часы с высоким разрешением, как следует из названия, — это часы в системе с наименьшим периодом тактов. Его синтаксис: «хроно:: high_resolution_clock“.
Все эти часы обеспечивают различные способы измерения времени и могут использоваться в соответствии с потребностями разработчика.
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