Tengo curiosidad por saber si hay una función incorporada en C++ para medir el tiempo de ejecución? Estoy usando Windows en este momento. En Linux es bastante fácil ...find C++ tiempo de ejecución
Respuesta
La mejor manera en Windows, hasta donde yo sé, es usar QueryPerformanceCounter
y QueryPerformanceFrequency
.
QueryPerformanceCounter(LARGE_INTEGER*)
coloca el valor del contador de rendimiento en LARGE_INTEGER pasado.
QueryPerformanceFrequency(LARGE_INTEGER*)
coloca la frecuencia en que el contador de rendimiento se incrementa en el LARGE_INTEGER pasado.
A continuación, puede encontrar el tiempo de ejecución registrando el contador a medida que se inicia la ejecución y luego registrando el contador cuando finaliza la ejecución. Reste el inicio desde el final para obtener el cambio del contador, luego divida por la frecuencia para obtener el tiempo en segundos.
LARGE_INTEGER start, finish, freq;
QueryPerformanceFrequency(&freq);
QueryPerformanceCounter(&start);
// Do something
QueryPerformanceCounter(&finish);
std::cout << "Execution took "
<< ((finish.QuadPart - start.QuadPart)/(double)freq.QuadPart) << std::endl;
Es bastante fácil en Windows también - de hecho, es la misma función en tanto std::clock, d efined en <ctime>
C++ no tiene funciones incorporadas para alta granularidad medir el tiempo de ejecución de código , debes recurrir al código específico de la plataforma. Para Windows, pruebe QueryPerformanceCounter: http://msdn.microsoft.com/en-us/library/ms644904(VS.85).aspx
Las funciones que debe usar dependen de la resolución del temporizador que necesite. Algunos de ellos dan resoluciones de 10 ms. Esas funciones son más fáciles de usar. Otros requieren más trabajo, pero dan una resolución mucho mayor (y pueden causar algunos dolores de cabeza en algunos entornos. Sin embargo, su máquina de desarrollo podría funcionar bien).
http://www.geisswerks.com/ryan/FAQS/timing.html
En este artículo se menciona:
- timeGetTime
- RDTSC (una característica del procesador y no una característica OS)
- QueryPerformanceCounter
Puede utilizar la API de Windows Función GetTickCount() y compare los valores en st arte y fin La resolución está en el estadio de 16 ms. Si por algún motivo necesita más temporizaciones precisas, tendrá que consultar QueryPerformanceCounter.
C++ funciona en muchas plataformas. ¿Por qué no utilizar algo que también funciona en muchas plataformas, como las bibliotecas Boost?
vistazo a la documentación para el Boost Timer Library
Creo que es una biblioteca sólo de encabezado, lo que significa que es fácil de configurar y usar ...
- 1. C# 2.0 Temporizador de tiempo de ejecución
- 2. C#: elenco de tiempo de ejecución dinámico
- 3. Mida el tiempo de ejecución en C#
- 4. C++ modificar recursos en tiempo de ejecución
- 5. burlarse en tiempo de ejecución en C?
- 6. C# Pass genéricos en tiempo de ejecución
- 7. QML C++ Child Find
- 8. Recopilación en tiempo de ejecución y en tiempo de ejecución C#
- 9. C# Creando un tipo genérico desconocido en tiempo de ejecución
- 10. Tiempo promedio de ejecución
- 11. Localización en tiempo de ejecución
- 12. Creación de clases de C# en tiempo de ejecución
- 13. Cómo implementar estadísticas eficientes de tiempo de ejecución de C++
- 14. penalización de tiempo de ejecución de C++ tratar bloques
- 15. operador sizeof en tiempo de compilación o tiempo de ejecución
- 16. Build C# Definición de tipo genérico en tiempo de ejecución
- 17. ¿Medir el tiempo de ejecución de un código C++?
- 18. Tiempo de ejecución variable de un programa en C
- 19. Tiempo transcurrido de ejecución de un programa en C
- 20. "Inline" (tipo de) funciones en tiempo de ejecución en C
- 21. Tiempo de ejecución C++, mostrar el mensaje de excepción
- 22. C# Método de anulación en tiempo de ejecución
- 23. tiempo de ejecución de mysql
- 24. C objetos en tiempo de ejecución, límites dll
- 25. C# Parse string para escribir conocido en tiempo de ejecución
- 26. Calcular Cron Próximo tiempo de ejecución en C#
- 27. C# fusionar dos objetos juntos en el tiempo de ejecución
- 28. ¿Cómo se define un objeto C# en tiempo de ejecución?
- 29. C# Tipo Casting en tiempo de ejecución usando Reflection
- 30. C# Tamaño del código y tiempo de ejecución del código