Hola usuario de nuestro sitio web, tenemos la respuesta a tu búsqueda, has scroll y la hallarás aquí.
Solución:
Puedes usar el C++ estándar
Biblioteca:
#include
#include
// long operation to time
long long fib(long long n)
if (n < 2)
return n;
else
return fib(n-1) + fib(n-2);
int main()
auto start_time = std::chrono::high_resolution_clock::now();
long long input = 32;
long long result = fib(input);
auto end_time = std::chrono::high_resolution_clock::now();
auto time = end_time - start_time;
std::cout << "result = " << result << 'n';
std::cout << "fib(" << input << ") took " <<
time/std::chrono::milliseconds(1) << "ms to run.n";
Una cosa a tener en cuenta es que usar
habilita el código de temporización genérico y seguro, pero para obtener ese beneficio, debe usarlo de manera un poco diferente de lo que usaría bibliotecas de temporización tontas e inseguras que almacenan duraciones y puntos de tiempo en tipos como int
. Aquí hay una respuesta que explica algunos escenarios de uso específicos y las diferencias entre el uso de bibliotecas sin tipo y las mejores prácticas para usar crono: https://stackoverflow.com/a/15839862/365496
El mantenedor de la implementación de la biblioteca estándar de Visual Studio ha indicado que la baja resolución de high_resolution_clock
se ha corregido en VS2015 mediante el uso de QueryPerformanceCounter()
.
Debe usar las API de QPC/QPF para calcular el tiempo de ejecución. Invoque el código que desee entre llamadas a QueryPerformanceCounter y luego use QueryPerformanceFrequency para convertirlo de ciclos a microsegundos.
LARGE_INTEGER nStartTime;
LARGE_INTEGER nStopTime;
LARGE_INTEGER nElapsed;
LARGE_INTEGER nFrequency;
::QueryPerformanceFrequency(&nFrequency);
::QueryPerformanceCounter(&nStartTime);
SomethingToBeTimed();
::QueryPerformanceCounter(&nStopTime);
nElapsed.QuadPart = (nStopTime.QuadPart - nStartTime.QuadPart) * 1000000;
nElapsed.QuadPart /= nFrequency.QuadPart;
Referencias: http://msdn.microsoft.com/en-us/library/windows/desktop/dn553408(v=vs.85).aspx
Estas buscando QueryPerformanceCounter
y funciones relacionadas.
Nos puedes añadir valor a nuestro contenido informacional añadiendo tu experiencia en las explicaciones.