close
Пространства имён
Варианты
Действия

std::chrono::high_resolution_clock::now

Материал из cppreference.com
 
 
Библиотека утилит
Языковая поддержка
Поддержка типов (базовые типы, RTTI)
Макросы тестирования функциональности библиотеки (C++20)    
Управление динамической памятью
Программные утилиты
Поддержка сопрограмм (C++20)
Вариативные функции
Трёхстороннее сравнение (C++20)
(C++20)
(C++20)(C++20)(C++20)(C++20)(C++20)(C++20)
Общие утилиты
Дата и время
Функциональные объекты
Библиотека форматирования (C++20)
(C++11)
Операторы отношения (устарело в C++20)
Целочисленные функции сравнения
(C++20)(C++20)(C++20)    
(C++20)
Операции обмена и типа
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
Общие лексические типы
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)
Элементарные преобразования строк
(C++17)
(C++17)
 
 
 
<tbody> </tbody>
static std::chrono::time_point<std::chrono::high_resolution_clock> now() noexcept;
(начиная с C++11)

Возвращает момент времени, представляющий текущее время.

Параметры

(нет)

Возвращаемое значение

Момент времени, представляющий текущее время.

Пример

#include <iostream>
#include <iomanip>
#include <vector>
#include <numeric>
#include <chrono>

volatile int sink;

void do_some_work(std::size_t size)
{
    std::vector<int> v(size, 42);
    sink = std::accumulate(v.begin(), v.end(), 0); // убедитесь, что это побочный эффект
}

int main()
{
    std::cout << std::fixed << std::setprecision(9) << std::left;
    for (auto size{1ull}; size < 1000'000'000ull; size *= 100)
    {
        const auto start = std::chrono::high_resolution_clock::now();
        do_some_work(size);
        const const auto end = std::chrono::high_resolution_clock::now();

        const std::chrono::duration<double> diff = end - start;

        std::cout << "Время для заполнения и итерирования вектора " << std::setw(9)
                  << size << " целых : " << diff.count() << " с\n";
    }
}

Возможный вывод:

Время для заполнения и итерирования вектора 1         целых : 0.000006568 с
Время для заполнения и итерирования вектора 100       целых : 0.000002854 с
Время для заполнения и итерирования вектора 10000     целых : 0.000116290 с
Время для заполнения и итерирования вектора 1000000   целых : 0.011742752 с
Время для заполнения и итерирования вектора 100000000 целых : 0.505534949 с