Calculer les performances des threads

Description

Voici une petite procédure qui vous permettra de mesurer exactement le temps d'occupation du CPU par vos Threads.

Elle permet de savoir, pour chaque thread :
- Sa date de création
- Sa date de fin
- Le temps d'occupation du processeur
- Le mode dans lequel il a utiliser le processeur (Utilisateur ou Superviseur)
Voir ce topic pour plus de précisions :
http://www.delphifr.com/infomsg_KERNELTIME-USERTIME_1085278.aspx

Toutes ces informations utilisées à bon escient permettront par exemple de savoir combien de temps une application tourne, quel thread est le plus souvent demandé, etc... Ces informations pourront vous permettre d'effectuer des mises à jour plus fines car vous saurez ce qui fait ralentir l'application et ce que vous devez optimiser. L'adaptation de cette procédure à vos besoins devrait être très facile.

Conclusion :


Bien sûr, pour utiliser la procedure GetThreadStats(), il faut que le Thread soit terminé mais pas encore libéré. Donc
MonThread.FreeOnTerminate := false;

Ensuite, il suffit de lui passer le handle d'un Thread dont on veut mesurer les performances et une chaîne pour l'identifier. On le libèrera juste après :
GetThreadStats(MonThread.Handle,'Mon thread');
MonThread.Free;

La démo est minimaliste, mais elle permet cependant d'effectuer certaines expériences très intéressantes sur les Threads, en particulier l'étude de l'influence des priorités. On découvre des trucs surprenants !

Un grand merci à WhiteHyppo qui a éclairé ma lanterne.

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.