Функция now класса steady_clock
Функция now класса steady_clock возвращает объект типа time_point, представляющий текущий момент времени монотонных часов. Такие часы гарантируют, что значение времени никогда не уменьшится, даже если системное время будет изменено пользователем или синхронизировано через сеть. Функция не принимает параметров и является статическим методом класса.
Синтаксис
steady_clock::time_point steady_clock::now();
Пример
Давайте получим текущий момент времени монотонных часов и выведем его в виде количества тиков, прошедших с начала отсчёта:
#include <iostream>
#include <chrono>
using namespace std;
int main()
{
auto tp = chrono::steady_clock::now();
cout << tp.time_since_epoch().count() << endl;
return 0;
}
Результат выполнения кода будет зависеть от конкретного запуска программы, например:
12345678901234
Пример
Давайте измерим время выполнения цикла с помощью функции now класса steady_clock:
#include <iostream>
#include <chrono>
using namespace std;
int main()
{
auto start = chrono::steady_clock::now();
int sum = 0;
for (int i = 0; i < 1000000; i++) {
sum += i;
}
auto end = chrono::steady_clock::now();
auto duration = chrono::duration_cast<chrono::milliseconds>(end - start);
cout << "Sum: " << sum << endl;
cout << "Elapsed: " << duration.count() << " ms" << endl;
return 0;
}
Результат выполнения кода:
"Sum: 499999500000"
"Elapsed: 2 ms"
Смотрите также
-
класс
steady_clock,
который представляет монотонные часы -
функция
nowклассаsystem_clock,
которая возвращает системное время -
функция
nowклассаhigh_resolution_clock,
которая возвращает время с максимальной точностью -
функция
sleep_for,
которая приостанавливает поток на заданное время