std::chrono::utc_clock::now
De cppreference.com
static std::chrono::time_point<std::chrono::utc_clock> now(); |
(desde C++20) | |
Devuelve un punto de tiempo que representa el punto en el tiempo actual.
El resultado se calcula como si fuera mediante std::chrono::utc_clock::from_sys(std::chrono::system_clock::now()). Las implementaciones pueden usar un valor más exacto de tiempo UTC.
Parámetros
(Ninguno)
Valor de retorno
Un punto de tiempo que representa el tiempo actual.
Ejemplo
Ejecuta este código
#include <iostream>
#include <iomanip>
#include <vector>
#include <numeric>
#include <chrono>
volatile int sink;
int main()
{
std::cout << std::fixed << std::setprecision(9) << std::left;
for (auto size = 1ull; size < 1000'000'000ull; size *= 100) {
// registrar tiempo de inicio
auto start = std::chrono::utc_clock::now();
// hacer algo de trabajo
std::vector<int> v(size, 42);
sink = std::accumulate(v.begin(), v.end(), 0u); // asegrarse que sea un efecto secundario
// registrar tiempo del fin
auto end = std::chrono::utc_clock::now();
std::chrono::duration<double> diff = end - start;
std::cout << "Tiempo de llenar e iterar sobre un vector de " << std::setw(9)
<< size << " enteros : " << diff.count() << " s\n";
}
}
Posible salida:
Tiempo de llenar e iterar sobre un vector de 1 enteros : 0.000006568 s
Tiempo de llenar e iterar sobre un vector de 100 enteros : 0.000002854 s
Tiempo de llenar e iterar sobre un vector de 10000 enteros : 0.000116290 s
Tiempo de llenar e iterar sobre un vector de 1000000 enteros : 0.011742752 s
Tiempo de llenar e iterar sobre un vector de 100000000 enteros : 0.505534949 s