2010-10-18 13 views
2

J'ai besoin de l'utilisation de la mémoire et du temps de traitement pour une application chargée via une autre application. J'utilise C#. Actuellement j'utilise Process.WorkingSet pour obtenir l'utilisation de la mémoire de même Process.TotalProcessTime pour obtenir le temps d'exécution, mais il ne donne aucune valeur. Avez-vous fait des suggestions?Utilisation de la mémoire et temps d'exécution pour un autre processus utilisant C#?

+0

L'ensemble de travail n'indique pas la quantité de mémoire utilisée. En outre, cela ne fera aucune différence s'il est lancé en tant que sous-processus ou en tant que tel. Sur son 'propre', il s'agit probablement d'un sous-processus de explorer.exe ou plus loin dans la chaîne. – leppie

Répondre

2

Utilisez WMI pour obtenir ce type d'informations, bien pris en charge par l'espace de noms System.Management. Commencez par télécharger le WMI Code Creator utility, il vous permet d'expérimenter avec des requêtes et peut générer automatiquement le C# dont vous aurez besoin.

Vous souhaitez interroger Win32_Process, il fournit beaucoup d'informations sur un processus. PrivatePageCount serait une bonne mesure pour la quantité de mémoire qu'il utilise qui n'est partagée par aucun autre processus. KernelModeTime et UserModeTime vous donne le temps d'exécuter du code.

+0

Wow, merci beaucoup pour le lien pour télécharger 'WMI Code Creator', je ne savais même pas à ce sujet avant même si j'avais entendu parler de l'utilisation de WMI. –