Mesurer l'activité du CPU.

Mesurer l'activité du CPU. - C++ - Programmation

Marsh Posté le 06-07-2002 à 04:35:58    

Mon prog est en C win32. Pour savoir quand arréter mon PC, il faudrait que mon appli sache quand les processus d'encodage ont finis, cad, quand mon processeur ne fais plus rien. Par la meme occasion j'aimerais savoir quels sont les processus qui tournent, leurs ressources ...
 
J'ai bien trouvé une solution (la voici), mais elle ne marche pas sous NT et je suppose sous 2000.
 
#include <tlhelp32.h>
 
HANDLE hndl;
PROCESSENTRY32 infos;
hndl = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,1);
infos.dwSize = sizeof(PROCESSENTRY32);
Process32First(hndl,&infos);
while(Process32Next(hndl,&infos))
{
         blabla ....
}

Reply

Marsh Posté le 06-07-2002 à 04:35:58   

Reply

Marsh Posté le 06-07-2002 à 09:00:00    

windows connait pas fork() je crois. Dommage, ca aurait été hyper simple un wait(pid)...
 
Sinon plus concretement, il me semble avoir entendu que la gestion des processus étaient completement différente sur NT et 9x, donc je suppose que ton exemple doit etre pour 9x.

Reply

Marsh Posté le 06-07-2002 à 09:36:39    

lorill a écrit a écrit :

windows connait pas fork() je crois. Dommage, ca aurait été hyper simple un wait(pid)...




 
Si mes souvenirs sont exact windows ne connait pas la fonction fork() mais Fork() ;-P
Mais de toute facon ca merite une recherche plus approfondie dans les MSDN.

Reply

Marsh Posté le 06-07-2002 à 16:54:38    

DJ_Mulder a écrit a écrit :

 
Si mes souvenirs sont exact windows ne connait pas la fonction fork() mais Fork() ;-P




 
Non. Sous win32, seulement des threads, pas de fork.
Sinon il doit y avoir un moyen d'avoir un handle sur un process et faire WaitForSingleObject dessus...

Reply

Marsh Posté le 09-07-2002 à 00:16:25    

justement, là est le problème. J'arrive pas a avoir de handle sur les processus qui tournent autrement qu'avec les solution que j'ai citée plus haut.

Reply

Marsh Posté le 09-07-2002 à 00:41:40    

kenshiro182 a écrit a écrit :

 
Non. Sous win32, seulement des threads, pas de fork.




 
Autant pour moi, y a pas de fork sous Win32 (bien que en faisant une recherche du mot fork sur les .h on en trouve un...)
 
Mais y a une fonction CreateProcess qui permet de s'en rapproché assez fortement (enfin d'apres ce que je lis dans les MSDN) mais d'une utilisation assez particulière...

Reply

Marsh Posté le 09-07-2002 à 08:24:25    

oliv5 a écrit a écrit :

justement, là est le problème. J'arrive pas a avoir de handle sur les processus qui tournent autrement qu'avec les solution que j'ai citée plus haut.




 
C un process que tu as créé dans ton prog où qui tourne à côté?
Dans le 2eme cas ce que tu fais est effectivement la seule solution.


---------------
Le Tyran
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed