Counters, unité de calcul de performance

Description

Un counter (compteur, en français) est un outil permettant de calculer le temps écoulé entre deux événements. Les précisions sont plus ou moins grandes dépendant de l'outil utilisé pour définir le temps du début et le temps de la fin. Par exemple, un compteur mental (vous dites 1, 2, 3 dans votre tête) sera moins précis qu'un système de détection laser pour savoir quel athlète a gagné la course.
Avec l'évolution des ordinateurs, l'on est maintenant capable d'atteindre des précisions de l'ordre de la milliseconde, de la microseconde et même, pour les nouveaux ordinateurs, la nanoseconde.
C'est ce que je vous propose de faire avec cette source.

Cette dernière contient une unité Counters, qui comporte elle-même des fonctions pour gérer un compteur. Je vous propose de télécharger cette source, de tester l'exemple puis de vous plonger dans le code de l'unité Counters.
Rien de très compliqué, je vous rassure. Simplement une paire de soustractions, une division, une multiplication, et voilà vous avez votre compteur.

Il suffit d'appeller des fonctions, un peu comme des API (dans la déclaration), pour créer vos compteurs, les libérer et les gérer. Bien sûr vous pouvez également utiliser la classe TCounter si vous préférez travailler avec des objets (cette classe gérera tout pour vous !). Cependant l'exemple reste avec les fonctions.

L'on peut choisir la précision que l'on veut pour le compteur, même si je limite dans l'exemple la précision de la seconde à la nanoseconde.

Parlons maintenant de l'exemple. Tout d'abord, une possibilité de choisir entre plusieurs précisions, la possibilité de réinitialiser le compteur, etc ... des activités pour ne pas rendre l'exemple débile, comme le calcul de votre temps de réaction (cliquez quand la fenêtre devient rouge), et le temps que met la calculatrice Windows pour se lancer ^^. En prime, le temps d'execution de quelques fonctions couramment utilisées, moyennant un petit "case..of".

Je pense avoir tout dit, vous pouvez eventuellement déposer votre temps de réaction ici :p j'ai fait 214.73 millisecondes en meilleur temps.

Source / Exemple :


// In the zip

Conclusion :


Voilà, tous critiques, commentaires, remarques, etc ...

Cordialement, Bacterius !

PS : Codé sous Delphi 6 Personal Edition.

PPS : Si vous avez des problèmes d'affichage, allez dans le fichier projet Example.dpr et commentez la ligne "{$R WindowsXP.res}".

PPPS : Je ne sais pas trop si je suis dans la bonne rubrique de code ...

PPPPS : Si vous n'arrivez pas à compiler (pour quelque raison que ce soit), renommez le gros fichier "Example.ex_" en "Example.exe" et lancez ^^.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.