2011-09-02 18 views
5

He leído algo sobre los problemas y la inexactitud de la implementación de QPC. Pero todas esas discusiones y artículos parecen bastante anticuados.QueryPerformanceCounter Status?

¿Alguien sabe cuál es el estado actual de la funcionalidad QPC en la última versión de Win7 OS y Intel/AMD cpus? Ha habido alguna mejora? Es, por ejemplo, Turbo Boost sigue siendo un gran problema?

Estoy principalmente interesado en esto ya que necesito decidir entre utilizar timeGetTime y QueryPerformanceCounter para el tiempo en mi aplicación.

+1

¿Qué leíste, exactamente? –

+0

QPC ha estado estable desde hace mucho tiempo. Los problemas de resolución y precisión son fundamentalmente específicos de la máquina, eso nunca va a cambiar. –

+0

@Hans: Es bueno saber que QPC es estable. Sin embargo, ¿cuál es el estado de los problemas específicos de la máquina? ¿Sigue siendo común con tales problemas con el hardware moderno? – ronag

Respuesta

4

QPC fue parcheado por el software Microsoft hace siglos (antiguo artículo kb sobre el problema: http://support.microsoft.com/kb/895980). Esta solución se puede instalar en cualquier sistema objetivo para su tranquilidad (he visto algunos juegos haciendo esto), sin embargo, no debería ser necesario. Todos los procesadores más nuevos tienen una corrección/compensación de hardware para esto, además de tener el TSC sincronizado correctamente entre los núcleos, por lo que se eliminan los problemas con los temporizadores basados ​​en RDTSC. El hot-fix se puede obtener desde aquí: http://support.microsoft.com/?id=896256 No estoy seguro de si hay algo para otros sistemas, pero por lo que parece, esta corrección fue inheirent en Windows Vista y en los sistemas operativos basados ​​en Windows 7. En cuanto a la cuestión de la precisión, eso depende del hardware en sí; sin embargo, Microsoft dice que QPC es el temporizador más preciso que se puede obtener (con un rendimiento decente), por lo que es menos que el __rdtsc(), dudo que sea más preciso.

Cuestiones relacionadas