Le calcul de processus d'utilisation de l'uc à partir de Processus.TotalProcessorTime

J'ai essayé de déplacer loin de l'aide de l' PerformanceCounter classe pour le suivi d'un processus d'utilisation de l'UC, puisqu'il semble qu'il nécessite une quantité décente de PROCESSEUR lorsque le nombre de processus obtient décemment élevé (lors de la surveillance d'un grand nombre de processus).

Ma première approche a été de prendre l'itinéraire à l'aide de WMI Win32_PerfFormattedData_PerfOS_Processor classe et la PercentProcessorTime de la propriété, mais il semble y avoir un problème lorsque vous essayez de calculer l'utilisation du PROCESSEUR sur plusieurs cœurs (la valeur max, il est de retour est de 100%, le rendant impossible à diviser en fonction du nombre de cœurs de PROCESSEUR, entraînant des résultats inexacts).

Donc, finalement, j'ai décidé d'utiliser le Processus de la classe TotalProcessorTime de la propriété. Malheureusement, je ne suis pas sûr de la façon de calculer le pourcentage de l'utilisation totale du CPU utilisé par le Processus en fonction de la valeur. Je sais que je dois soustraire le courant PercentProcessorTime valeur à partir d'une précédente PercentProcessorTime valeur pour obtenir combien de temps le processeur passé sur le processus dans un certain délai, mais je ne sais pas comment faire pour continuer à partir de là.

Merci d'avance.

OriginalL'auteur coolmine | 2013-11-03