Message de rapport:
 

Re: % utilisation CPU

Sujet: Re: % utilisation CPU
par daniel sur 25/9/2007 21:06:41

Ci-joint le code d'une procédure pour calculer le % CPU
Ce code n'est pas de moi, mais je ne retrouve plus son créateur.


GLOBAL
	
	GP_N_LgSppInformation est un entier

	GP_N_LgRetour est un entier
	
	GP_N_TickTotal est un entier sur 8 octets
	GP_N_TickIdle est un entier sur 8 octets
	GP_N_DiffTotal est un entier sur 8 octets
	GP_N_DiffIdle est un entier sur 8 octets
	GP_N_Occupe est un réel 
	
	GP_N_MemTickTotal est un entier sur 8 octets
	GP_N_MemTickIdle est un entier sur 8 octets
	
	GP_N_Timer est un entier
	
SPPINFORMATION est une structure
	IdleTime est un entier  sur 8 octets
	ValeursInutiles est une chaîne fixe de 304 
FIN
	

GP_Sppi est une sppinformation


PROCEDURE RechercheTaux()

// SystemPerformanceInformation = 2

LOCAL
	N_TailleRenvoyee est un entier
	N_ValeurRetour est un entier sur 4 octets
	
GP_N_LgSppInformation=Dimension(GP_SPPI)


N_ValeurRetour=AppelDLL32("NTDLL.DLL","NtQuerySystemInformation",2,&gp_SPPI,GP_N_LgSppInformation,GP_N_LgRetour)

SI GP_N_LgRetour<>0 ALORS
	Transfert(&N_TailleRenvoyee,GP_N_LgRetour,4)
	Erreur("La structure envoyée n'a pas la taille suffisante. Elle devrait faire : "+ N_TailleRenvoyee)
FIN


// conversion du temps Idle en millisecondes
GP_N_TickIdle=GP_Sppi:IdleTime/10000


// Recherche du temps total
GP_N_TickTotal=AppelDLL32("kernel32.dll","GetTickCount")

GP_N_DiffIdle=GP_N_TickIdle-GP_N_MemTickIdle
GP_N_DiffTotal=GP_N_TickTotal-GP_N_MemTickTotal
GP_N_Occupe=100-GP_N_DiffIdle/GP_N_DiffTotal*100

SI GP_N_Occupe<0 ALORS
	GP_N_Occupe=0
FIN

GP_N_MemTickIdle=GP_N_TickIdle
GP_N_MemTickTotal=GP_N_TickTotal

CH_N_PourcentageOccupe=GP_N_Occupe // champ récupérant la valeur



TimerSys(RechercheTaux,100)

Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2