CLOCK |
Horloge |
---|---|
Langage C | time.h |
Syntaxe
clock_t clock(void); |
Description
Cette fonction indique le temps que l'ordinateur a utilisé depuis le début de son exécution.
Algorithme
MODULE getProcessorTimeTicks() SI système d'exploitation DOS ALORS * Appel à l'interruption DOS pour obtenir l'heure du système (en tics) Interruption 021h, fonction 02Ch * La fonction retourne l'heure en nombre de "tics" depuis minuit ticks ← AX * AX contient la valeur des tics (le nombre de "tics" du compteur système) RETOURNE ticks SINON SI systemSupportsProcessorTime() ALORS * Utiliser l'API système pour obtenir le nombre de tics du processeur ticks ← readProcessorTime() RETOURNE tics SINON * Si le système ne prend pas en charge cette fonctionnalité, retourner une erreur raise Error("Le système ne prend pas en charge la lecture du temps processeur.") FIN SI FIN SI MODULE CLOCK() * Obtenir le nombre de tics depuis le début de l'exécution du programme ticks ← getProcessorTimeTicks() * Retourner le nombre de tics RETOURNE ticks |
Remarques
- Définition et rôle : La fonction clock mesure le temps du microprocesseur écoulé depuis le début de l'exécution du programme. Elle renvoie ce temps sous la forme d'une valeur de type clock_t. Cette mesure est utile pour analyser les performances d'un programme ou mesurer la durée d'exécution d'un bloc de code.
- Unité de mesure : La valeur retournée par clock représente le nombre de tics de microprocesseur écoulés, où un tic est défini comme une unité de temps spécifique au système. Pour convertir cette valeur en secondes, il faut la diviser par la constante CLOCKS_PER_SEC, définie dans <time.h>.
- Inclusion et prototype : La fonction est déclarée dans la bibliothèque standard de temps, accessible via #include <time.h>.
- Précision et limites : La précision de clock dépend de la résolution du système d'exploitation et de l'implémentation de la bibliothèque standard. Sur certains systèmes, elle peut être limitée, rendant difficile la mesure de durées très courtes ou très longues.
- Débordement de valeur possible : Si le programme s'exécute pendant une durée très longue, la valeur de retour de clock peut dépasser l'intervalle maximale de clock_t, provoquant un débordement (overflow). Cela peut engendrer des calculs erronés si ce cas n'est pas géré.
- Différence avec le temps réel : La fonction clock mesure uniquement le temps CPU utilisé par le programme et non le temps réel écoulé. Ainsi, elle exclut les périodes où le programme est inactif ou en attente de ressources externes.
- Utilisation pour le profilage : clock est souvent utilisée pour chronométrer des sections spécifiques du code, en enregistrant les tics avant et après l'exécution d'un bloc de code.
- Différences entre environnements : Sous Unix, clock retourne le temps de microprocesseur total utilisé par le processus, mais sous Windows, son comportement peut varier selon l'implémentation. Il est recommandé d'utiliser des alternatives comme chrono de STL en C++ ou des API système spécifiques pour des besoins plus précis.
Exemple
Voici quelques exemples typiques de l'utilisation de cette fonction :
Essayer maintenant !
on obtiendra le résultat suivant :
Temps écoulé = 0 millisecondesVoir également
Langage de programmation - C - Référence de procédures et fonctions - time
Langage de programmation - C++ - Référence de procédures et fonctions - clock
Références
Langage C, Edition Micro-Application, Gehard Willms, 2001, ISBN: 2-7429-2008-0, page 731.
Borland C++ for Windows 4.0, Library Reference, Edition Borland, 1993, Part # BCP1240WW21772, page 52.
Dernière mise à jour : Mardi, le 28 juillet 2015