std::chrono::system_clock::now
De cppreference.com
static std::chrono::time_point<std::chrono::system_clock> now() noexcept;
|
(desde C++11) | |
Devuelve un punto de tiempo que representa el punto en el tiempo actual.
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::system_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::system_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