Tutti danno una risoluzione in millisecondi? funzioneQual è la differenza tra clock(), gettickcount(), QueryPerformanceCounter() e QueryPerformanceFrequency()?
risposta
clock
A C++. Restituisce il numero di tick della CPU dall'avvio dell'applicazione. Per convertire questo in secondi dividerlo per CLOCKS_PER_SEC
.
GetTickCount
funzione API Win32. Restituisce il numero di millisecondi da quando è stato avviato il sistema.
QueryPerformanceCounter
funzione API Win32. Il contatore delle prestazioni è un contatore ad alta risoluzione che aumenta nel tempo. Per convertire questo in secondi dividerlo per QueryPerformanceFrequency
.
No, non hanno precisione millisecondo. clock
e GetTickCount
hanno una precisione compresa tra 4 e 15 millisecondi sulla maggior parte dei sistemi. QueryPerformanceCounter
ha una precisione compresa tra il microsecondo e il nanosecondo.
clock
è un wrapper intorno a GetTickCount
se si utilizza la libreria di runtime C di Microsoft, che, se si sta utilizzando un compilatore MS, probabilmente lo si è. GetTickCount
restituisce un valore in millisecondi, ma non aumenta di un millisecondo dopo che è trascorso un millisecondo. Viene incrementato solo quando si verifica un interrupt dell'orologio di sistema, che va da quattro a 15 millisecondi, di solito è di circa 15 ms, ma può essere modificato dalle applicazioni. Ciò influisce sull'intero computer: influisce sulla programmazione dei thread e il sovraccarico di interruzioni più frequenti lascia anche meno tempo di CPU per l'esecuzione del codice del programma, quindi non farlo a meno che non ne abbia davvero bisogno. Se il tuo computer spunta più frequentemente di 15 ms, alcune altre applicazioni hanno modificato la frequenza degli interrupt di tick.
QueryPerformanceCounter
utilizza qualsiasi timer ad alta risoluzione disponibile sul sistema. In passato, di solito si basava sul conteggio interno del processore dei cicli di clock, quindi conteggiava a 2-3GHz o circa 0,5ns. Sfortunatamente alcuni processori hanno variato la velocità con cui il contatore sarebbe andato a segno quando era in stati di bassa potenza, e nei sistemi multi-CPU (cioè con più socket del processore) si avrebbero problemi se le CPU non avessero la stessa velocità. Windows ora utilizza altre fonti più affidabili, ma non hanno la stessa risoluzione del processore. QueryPerformanceFrequency
ti dice quante zecche si verificano in un secondo. Per ottenere millisecondi, moltiplicare la differenza di campioni QPC per 1000 e dividere per il risultato di QueryPerformanceFrequency
.
- 1. Qual è la differenza tra = e: =
- 2. Qual è la differenza tra Verilog! e ~?
- 3. Qual è la differenza tra? : e ||
- 4. qual è la differenza tra [[], []] e [[]] * 2
- 5. Qual è la differenza tra $ e $$?
- 6. Qual è la differenza tra ("") e (null)
- 7. Qual è la differenza tra dict() e {}?
- 8. Qual è la differenza tra " " e ""?
- 9. Qual è la differenza tra {0} e ""?
- 10. Qual è la differenza tra `##` e `hashCode`?
- 11. Qual è la differenza tra {0} e +?
- 12. Qual è la differenza tra .ToString() e + ""
- 13. qual è la differenza tra:.! e: r !?
- 14. Qual è la differenza tra "è Nessuno" e "== Nessuno"
- 15. Unix: Qual è la differenza tra la fonte e l'esportazione?
- 16. Qual è la differenza tra il callback e la promessa
- 17. Qual è la differenza tra la sezione .got e .got.plt?
- 18. Qual è la differenza tra la lista() e []
- 19. Qual è la differenza tra GHC e la piattaforma Haskell?
- 20. Qual è la differenza tra sé e la finestra?
- 21. Qual è la differenza tra la cartella vim72 e vimfiles?
- 22. Qual è la differenza tra la serratura e RLock
- 23. Qual è la differenza tra la funzione() {}() e function() {}()
- 24. Qual è la differenza tra la crittografia SHA e AES?
- 25. Qual è la differenza tra la [OptionalField] e [NonSerialized]
- 26. Qual è la differenza tra Chisel e Lava e CLaSH?
- 27. Qual è la differenza tra queste funzioni
- 28. Qual è la differenza tra queste funzioni?
- 29. Qual è la differenza tra Response.Write() eResponse.Output.Write()?
- 30. Qual è la differenza tra applicationDidReceiveMemoryWarning, didReceiveMemoryWarning?
Cosa dice la documentazione? –