Domanda

Un modo comune per misurare il tempo trascorso è:

const clock_t START = clock();
// ...
const clock_t END = clock();
double T_ELAPSED = (double)(END - START) / CLOCKS_PER_SEC;

So che questo non è il modo migliore per misurare in tempo reale, ma mi chiedo se funziona su un sistema con una CPU a frequenza variabile. E 'solo che non va?

È stato utile?

Soluzione

Ci sono architetture di sistema che modifica la frequenza della CPU, ma hanno una frequenza separata e costante per guidare un orologio di sistema. Si potrebbe pensare che una funzione clock() restituirebbe un tempo indipendente dalla frequenza della CPU, ma questo avrebbe dovuto essere verificate in ogni sistema il codice è destinato a funzionare su.

Altri suggerimenti

Non è bene per l'uso su una CPU velocità di clock variabile.

http://support.ntp.org/bin/view/Support/KnownHardwareIssues

NTP (Network Time prototcol) daemon su linux ha avuto problemi con esso.

La maggior parte del sistema operativo sono alcune chiamate API per valori più precisi, un esempio è su Windows, QueryPerformanceCounter

http://msdn.microsoft.com/ it-it / library / ms644904% 28VS.85% 29.aspx

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top