2011-09-02 12 views
5

Ho letto alcuni dei problemi e delle inesattezze dell'implementazione QPC. Ma tutte quelle discussioni e articoli sembrano piuttosto antiquati.QueryPerformanceCounter Status?

Chiunque sa che cosa lo stato attuale è della funzionalità QPC sul l'ultimo sistema operativo Win7 e Intel/AMD CPU? Ci sono stati miglioramenti? Ad es. Turbo Boost è ancora un grosso problema?

Sono principalmente interessato a questo da quando ho bisogno di decidere tra l'uso timeGetTime e QueryPerformanceCounter per la temporizzazione nella mia applicazione.

+1

Cosa hai letto esattamente? –

+0

QPC è stabile da molto tempo. I problemi di risoluzione e accuratezza sono fondamentalmente specifici della macchina, che non cambierà mai. –

+0

@Hans: Buono a sapersi che QPC è stabile. Tuttavia, qual è lo stato dei problemi specifici della macchina? È ancora comune con tali problemi con l'hardware moderno? – ronag

risposta

4

QPC è stato patchato lato software da Microsoft tempo fa (vecchio articolo kb sul problema: http://support.microsoft.com/kb/895980). Questa correzione può essere installata su qualsiasi sistema di destinazione per motivi mentali (ho visto alcuni giochi farlo), tuttavia non dovrebbe essere necessaria. Tutti i processori più recenti hanno una correzione hardware/compensazione per questo, oltre ad avere il TSC sincronizzato correttamente tra i core, quindi i problemi con i timer basati su RDTSC vengono eliminati. L'hot-fix può essere ottenuto da qui: http://support.microsoft.com/?id=896256 non sono sicuro se c'è qualcosa per gli altri sistemi, ma dagli sguardi di esso questa correzione era inheirent in Windows Vista e Windows 7 gli OS basati. Per quanto riguarda la questione dell'accuratezza, ciò dipende dall'hardware stesso, tuttavia Microsoft afferma che il QPC è il timer più affidabile che si possa ottenere (con prestazioni decenti), quindi a corto di in linea __rdtsc(), dubito che si otterrà più preciso.

Problemi correlati