Chronométrage


o InitChrono
Crée un chronomètre pour mesurer le temps réel et le met à zéro.
o StartChrono
Déclenche le chronomètre créé par InitChrono, ou le remet en marche s'il a été arrêté par PauseChrono.
o PauseChrono
Arrête le chronomètre déclenché par StartChrono.
o CloseChrono
Ferme le chronomètre créé par InitChrono et arrêté par PauseChrono.
o MicroPrintChrono
Place dans la chaîne de caractères gTimeString l'indication du chronomètre mis en pause, avec secondes, millisecondes et microsecondes.
o MilliPrintChrono
Place dans la chaîne de caractères gTimeString l'indication du chronomètre mis en pause, avec secondes et millisecondes seulement.
o PrintChrono
Place dans la chaîne de caractères gTimeString l'indication du chronomètre mis en pause, avec heures, minutes et secondes.
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}

This page was generated with the help of DOC++.