Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Ressources Processeur pour une application.

4 réponses
Avatar
Mousnynao
Bonjour,

Je cherche à lire les ressources CPU qu'une application utilise. J'ai disons
12 programmes qui tournent en même temps sur un serveur, ces progs
sont en quelques sortes des passerelles. Or il arrive que certains gèle !

Je cherche a effectuer un rafraichissement de chacun de ces progs par
un restart, mais je ne veut pas faire le restart si le prog traite un dossier
(quelques secondes).

J'ai bati cette fonction pour récupérer les propriétés que j'ai trouvé, mais
je ne trouve pas la propriété qui me fournirait les ressources processeur
que l'on peut voir dans le gestionnaire de tâches.

Comment puis-je récupérer cette valeur ?

Voici mon code :

Function ValidePropriete()

Dim objWsProcess, objService, numPID, Boucle

numPID = Split(msgTexte(0),"¥")
Set objWsProcess =
GetObject("winmgmts:{impersonationLevel=impersonate}!//" &
Ordinateur).InstancesOf("Win32_Process")

Boucle = objWsProcess.Count
If (Boucle > 0 ) Then
For Each objService In objWsProcess
If (objService.Handle = numPID(1)) Then
Boucle = 0
ReDim tabPropriete(42, Boucle + 1)
tabPropriete(0,Boucle) = objService.Caption
tabPropriete(1,Boucle) = objService.CreationDate
tabPropriete(2,Boucle) = objService.Description
tabPropriete(3,Boucle) = objService.Handle
tabPropriete(4,Boucle) = objService.KernelModeTime
tabPropriete(5,Boucle) = objService.Name
tabPropriete(6,Boucle) = objService.OtherOperationCount
tabPropriete(7,Boucle) = objService.PageFileUsage
tabPropriete(8,Boucle) = objService.PeakVirtualSize
tabPropriete(9,Boucle) = objService.PrivatePageCount
tabPropriete(10,Boucle) = objService.Status
tabPropriete(11,Boucle) = objService.UserModeTime
tabPropriete(12,Boucle) = objService.WorkingSetSize
tabPropriete(13,Boucle) = objService.CommandLine
tabPropriete(14,Boucle) = objService.CSCreationClassName
tabPropriete(15,Boucle) = objService.ExecutablePath
tabPropriete(16,Boucle) = objService.HandleCount
tabPropriete(17,Boucle) = objService.MaximumWorkingSetSize
tabPropriete(18,Boucle) = objService.OSCreationClassName
tabPropriete(19,Boucle) = objService.OtherTransferCount
tabPropriete(20,Boucle) = objService.ParentProcessId
tabPropriete(21,Boucle) = objService.PeakWorkingSize
tabPropriete(22,Boucle) = objService.ProcessId
tabPropriete(23,Boucle) = objService.QuotaPeakNonPagedPoolUsage
tabPropriete(24,Boucle) = objService.ReadTransferCount
tabPropriete(25,Boucle) = objService.TerminationDate
tabPropriete(26,Boucle) = objService.VirtualSize
tabPropriete(27,Boucle) = objService.CreationClassName
tabPropriete(28,Boucle) = objService.CSName
tabPropriete(29,Boucle) = objService.ExecutionState
tabPropriete(30,Boucle) = objService.InstallDate
tabPropriete(31,Boucle) = objService.MinimumWorkingSize
tabPropriete(32,Boucle) = objService.OSName
tabPropriete(33,Boucle) = objService.PageFaults
tabPropriete(34,Boucle) = objService.PeakPageFileUsage
tabPropriete(35,Boucle) = objService.Priority
tabPropriete(36,Boucle) = objService.QuotaNonPagedPoolUsage
tabPropriete(37,Boucle) = objService.QuotaPeakPagedPoolUsage
tabPropriete(38,Boucle) = objService.SessionId
tabPropriete(39,Boucle) = objService.ThreadCount
tabPropriete(40,Boucle) = objService.WindowsVersion
End If
Next
End If

End Function
'

Merci de votre attention.
Bonne journée.

mousnynao

4 réponses

Avatar
Méta-MCI (MVP)
Bonjour !

Regarde la classe WMI Win32_PerfRawData_PerfOS_Processor
Il y a des propriétés qui pourraient t'intéresser.

@-salutations

Michel Claveau
Avatar
Mousnynao
Bonjour,

Merci pour l'information, je vais regarder pour voir si j'y trouve
l'information que je chercher :-)

@+
mousnynao

"Méta-MCI (MVP)" a écrit :

Bonjour !

Regarde la classe WMI Win32_PerfRawData_PerfOS_Processor
Il y a des propriétés qui pourraient t'intéresser.

@-salutations

Michel Claveau





Avatar
Gilles LAURENT [MVP]
"Mousnynao" a écrit dans le
message de
news:
| Bonjour,

Bonjour,

[...]
| J'ai bati cette fonction pour récupérer les propriétés que j'ai
| trouvé, mais je ne trouve pas la propriété qui me fournirait les
| ressources processeur que l'on peut voir dans le gestionnaire de
| tâches.

En complément de la réponse de Michel Claveau :

objService.KernelModeTime+objService.UserModeTime

Note: Le résultat est exprimé en nanosecondes

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
Avatar
Mousnynao
Bonjour,

Tout d'abord, merci de votre aide.

Je vous expose ici un petit compte rendu pour l'aide apporter.

Les propriétés cités me donnent des compteurs cumulatifs.
Je vais peut-être pouvoir me débrouiller avec mais je regarde
aussi actuellement pour une appli vb.net.

Dans la classe [ Win32_PerfRawData_PerfOS_Processor ],
j'ai trouvé les propriétés suivantes :

C1TransitionsPersec : 9100215
C2TransitionsPersec : 0
C3TransitionsPersec : 0
Caption :
Description :
DPCRate : 0
DPCsQueuedPersec : 2548835
Frequency_Object : 0
Frequency_PerfTime : 3579545
Frequency_Sys100NS : 10000000
InterruptsPersec : 10206235
Name : 0
PercentC1Time : 769670552529
PercentC2Time : 0
PercentC3Time : 0
PercentDPCTime : 277198592
PercentIdleTime : 772105533232
PercentInterruptTime : 418401632
PercentPrivilegedTime : 7712690304
PercentProcessorTime : 772105533232
PercentUserTime : 18631991488
Timestamp_Object : 0
Timestamp_PerfTime : 285820497958
Timestamp_Sys100NS : 128796324470899478

Comme expliquer, compte tenu du fait que j'ai environ 12 progs
qui tournent, je ne sais lequelle le serveur SNA utilisera pour
effectuer le transfert, il prend le premier disponible. En fait, il
peut en envoyer 3 consécutifs sur le même puis changer au quatrième,
c'est très aléatoire.

Bon, je ne suis pas expert de tous cela et je défriche alors ça ne
va pas très vite.

Donc, merci encore pour votre aide.

mousnynao (gouv.qc.ca)


"Gilles LAURENT [MVP]" a écrit :

"Mousnynao" a écrit dans le
message de
news:
| Bonjour,

Bonjour,

[...]
| J'ai bati cette fonction pour récupérer les propriétés que j'ai
| trouvé, mais je ne trouve pas la propriété qui me fournirait les
| ressources processeur que l'on peut voir dans le gestionnaire de
| tâches.

En complément de la réponse de Michel Claveau :

objService.KernelModeTime+objService.UserModeTime

Note: Le résultat est exprimé en nanosecondes

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr