¿Todos dan una resolución de milisegundos?¿Cuál es la diferencia entre clock(), gettickcount(), QueryPerformanceCounter() y QueryPerformanceFrequency()?
Respuesta
clock
A C++ función. Devuelve el número de ticks de CPU desde que se inicia la aplicación. Para convertir esto en segundos, divídalo por CLOCKS_PER_SEC
.
GetTickCount
función de la API Win32. Devuelve el número de milisegundos desde que se inició el sistema.
QueryPerformanceCounter
función de la API Win32. El contador de rendimiento es un contador de alta resolución que aumenta con el tiempo. Para convertir esto en segundos divídalo por QueryPerformanceFrequency
.
No, no tienen una precisión de milisegundos. clock
y GetTickCount
tienen una precisión de entre 4 y 15 milisegundos en la mayoría de los sistemas. QueryPerformanceCounter
tiene una precisión en el rango de microsegundos a nanosegundos.
clock
es un contenedor alrededor de GetTickCount
si está utilizando la biblioteca C runtime de Microsoft, que, si está utilizando un compilador de MS, probablemente lo sea. GetTickCount
devuelve un valor en milisegundos, pero no aumenta en un milisegundo una vez transcurrido un milisegundo. Solo se incrementa cuando se produce una interrupción del reloj del sistema, que es cada cuatro a 15 milisegundos, normalmente es de aproximadamente 15 ms, pero las aplicaciones pueden cambiarlo. Esto afecta a toda la computadora: afecta la programación de subprocesos, y la sobrecarga de las interrupciones más frecuentes también deja menos tiempo de CPU para ejecutar realmente el código de programa, por lo que no lo hagas a menos que realmente lo necesites. Si su computadora está funcionando con más frecuencia que 15ms, alguna otra aplicación ha modificado la frecuencia de interrupción de ticks.
QueryPerformanceCounter
utiliza los temporizadores de alta resolución disponibles en el sistema. En el pasado, generalmente se basaba en el recuento interno de ciclos de reloj del procesador, por lo que contaría a 2-3 GHz, o aproximadamente 0.5ns. Desafortunadamente, algunos procesadores variaban la velocidad que el contador marcaba en los estados de bajo consumo de energía, y en los sistemas de varias CPU (es decir, con múltiples sockets de procesador) se producían problemas si las CPU no tenían la misma velocidad. Windows ahora usa otras fuentes más confiables, pero no tienen la misma resolución que el procesador. QueryPerformanceFrequency
le dice cuántas marcas ocurren en un segundo. Para obtener milisegundos, multiplique la diferencia de muestras de QPC por 1000 y divida por el resultado de QueryPerformanceFrequency
.
- 1. ¿Cuál es la diferencia entre {0} y ""?
- 2. Cuál es la diferencia entre = y: =
- 3. ¿Cuál es la diferencia entre .ToString (+) y ""
- 4. Cuál es la diferencia entre $ (...) y `...`
- 5. ¿cuál es la diferencia entre:.! y: r !?
- 6. ¿Cuál es la diferencia entre ".equals" y "=="?
- 7. ¿Cuál es la diferencia entre dict() y {}?
- 8. ¿Cuál es la diferencia entre `##` y `hashCode`?
- 9. ¿Cuál es la diferencia entre "$^N" y "$ +"?
- 10. ¿Cuál es la diferencia entre [indefinido] y [,]?
- 11. ¿Cuál es la diferencia entre + = y = +?
- 12. ¿Cuál es la diferencia entre " " y ""?
- 13. Cuál es la diferencia entre $ y jQuery
- 14. OpenGL (ES) - ¿Cuál es la diferencia entre frustum y orto?
- 15. Cuál es la diferencia entre la función() {}() y la función() {}()
- 16. ¿Cuál es la diferencia entre la abstracción y la encapsulación?
- 17. ¿Cuál es la diferencia entre @ y $ y% en MSBuild?
- 18. ¿Cuál es la diferencia entre la vinculación estática y dinámica?
- 19. ¿Cuál es la diferencia entre la sección .got y .got.plt?
- 20. ¿Cuál es la diferencia entre el colado y la coerción?
- 21. ¿cuál es la diferencia entre el complemento y la biblioteca?
- 22. ¿Cuál es la diferencia entre el casting y la conversión?
- 23. ¿Cuál es la diferencia entre WPF y la aplicación Silverlight?
- 24. ¿Cuál es la diferencia entre uno mismo y la ventana?
- 25. ¿Cuál es la diferencia entre CookieContainer y la colección Response.Cookies?
- 26. ¿Cuál es la diferencia entre la relación Composición y Asociación?
- 27. ¿cuál es la diferencia entre el material y la textura?
- 28. ¿Cuál es la diferencia entre el marco y la arquitectura?
- 29. ¿Cuál es la diferencia entre la carpeta vim72 y vimfiles?
- 30. ¿cuál es la diferencia entre la lex y yacc
¿Qué dice la documentación? –