Monitoring d'une application multi-thread [Résolu]

bigzooloo 36 Messages postés jeudi 16 mai 2002Date d'inscription 6 octobre 2009 Dernière intervention - 8 sept. 2005 à 11:44 - Dernière réponse : bigzooloo 36 Messages postés jeudi 16 mai 2002Date d'inscription 6 octobre 2009 Dernière intervention
- 10 sept. 2005 à 12:36
Bonjour,



J'ai créé une application multi-threads qui utilise des librairies,
égalements, multi-threads. J'aurai voulu savoir s'il était possible de
surveiller le temps d'exécution de chaque thread (lib incluses). Ou
encore mieux, avoir un graphique présentant l'utilisation du CPU
précisant quel thread travail. Pour des histoires de synchronisation et
de performance.



Il peut y avoir plusieurs solutions :

- un programme externe qui surveille le CPU et qui se débrouille pour me sortir l'id du thread en cours.

- un genre de "label" à inclure dans le code source à chaque début et fin de thread.

- ... ?



Merci pour vos réponses.
Afficher la suite 

6 réponses

Répondre au sujet
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 8 sept. 2005 à 14:18
+3
Utile
Intel VTune semble bien mais je n'ai pas utilisé, faudrait voir.

ciao...
BruNews, MVP VC++
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de BruNews
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 8 sept. 2005 à 11:55
0
Utile
Sous Windows:
QueryPerformanceFrequency
QueryPerformanceCounter

Prends tes mesures en début de chaque thread et soustrais avec mesure en sortie et tu écris dans un fichier.

ciao...
BruNews, MVP VC++
Commenter la réponse de BruNews
bigzooloo 36 Messages postés jeudi 16 mai 2002Date d'inscription 6 octobre 2009 Dernière intervention - 8 sept. 2005 à 12:11
0
Utile
Merci, ceci répond à ma question concernant le temps d'exécution d'un thread.



Maintenant, supposons deux threads qui durents 10 secondes chacun.
Comment faire pour connaître leur découpage, par l'OS, pour s'exécuter
"en même temps" ?



Par exemple, 10 ms pour le premier puis 15 ms pour le second, et on
reprend le premier... Le résultat pourrait être sous forme graphique,
ou un tableau, ...



Merci



Ps : Windows XP & VC++
Commenter la réponse de bigzooloo
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 8 sept. 2005 à 12:21
0
Utile
Regarde GetThreadTimes() dans MSDN.
Par contre s'il te faut graphique etc... trop long à dev, vaudrait mieux se tourner vers un outil de monitoring.

ciao...
BruNews, MVP VC++
Commenter la réponse de BruNews
bigzooloo 36 Messages postés jeudi 16 mai 2002Date d'inscription 6 octobre 2009 Dernière intervention - 8 sept. 2005 à 14:00
0
Utile
On se rapproche de la solution...

Cette fonction permet de connaitre le temps CPU du thread.



En fait, j'aurais voulu un truc dans ce genre :



thread 1
|---------|
|----------|
|----------| [FIN]

thread 2 |----|

|----|

|----| [FIN]

CPU idle
---|
|---|
|-|
|--------


--------------------------------------------------------------->
temps



Sinon, quel outil peut faire ceci ?



Merci
Commenter la réponse de bigzooloo
bigzooloo 36 Messages postés jeudi 16 mai 2002Date d'inscription 6 octobre 2009 Dernière intervention - 10 sept. 2005 à 12:36
0
Utile
Bonjour,

J'ai télécharger une démo en flash de ce programme sur intel... ca a l'aire convainquant !
par contre le prix l'est un peu moins... 699$ mais bon

Merci
Commenter la réponse de bigzooloo

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.