Le chronométrage repose sur l'usage de la fonction C gettimeofday(timeval* T, NULL), qui établit la valeur de T comme la date de l'instant d'appel, avec une précision d'un centième de seconde. Il suffit alors de faire la différence entre les deux valeurs de T établies par deux appels en deux instants pour avoir la durée entre les deux appels.
Le premier appel est réalisé par StartChrono() et le second par PauseChrono().
Préalablement, le chronomètre a été rendu prêt à fonctionner par InitChrono(), et il sera déactivé par CloseChrono().
Après un CloseChrono(), un InitChrono() est à nouveau nécessaire avant un nouveau StartChrono().
On peut enchaîner plusieurs couples StartChrono() / PauseChrono() entre un InitChrono() et un CloseChrono(), notamment pour cumuler les durées d'exécution d'un bloc de calcul invoqué de manière répétée (par exemple itérativement).
Enfin, les fonctions de la famille PrintChrono() rangent la durée mesurée dans la variable globale gTimeString (type char*), qu'on peut alors afficher ou imprimer. Une séquence typique est donc :
void f() { StartChrono(); ... PauseChrono(); } int main(...) { InitChrono(); for(int k=0;k<1000++) { f(); } CloseChrono(); PrintChrono(); printf("\nduree cumulee d'execution de 'f' : %s\n", gTimeString); \end {verbatim}>> \begin{verbatim} duree cumulee d'execution de 'f' : 0h01'18 \end {verbatim}