std::chrono::gps_clock::now
De cppreference.com
staticstd::chrono::time_point<std::chrono::gps_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::gps_clock::from_utc(std::chrono::utc_clock::now()). Las implementaciones pueden usar un valor más exacto de tiempo GPS.
[editar]Parámetros
(Ninguno)
[editar]Valor de retorno
Un punto de tiempo que representa el tiempo actual.
[editar]Ejemplo
Ejecuta este código
#include <iostream>#include <iomanip>#include <vector>#include <numeric>#include <chrono> volatileint 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 inicioauto start = std::chrono::gps_clock::now();// hacer algo de trabajostd::vector<int> v(size, 42); sink =std::accumulate(v.begin(), v.end(), 0u);// asegrarse que sea un efecto secundario// registrar tiempo del finauto end = std::chrono::gps_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