Sie sind hier: Startseite
 Liste aller Codebeispiele

Speichernutzung der aktiven Prozesse

Ein Beispiel zum Einsatz der Klasse System.Management.Win32_PerfRawData_PerfProc_Process aus der .NET-Klassenbibliothek.

Autor: Dr. Holger Schwichtenberg 

Beschreibung

Um zu demonstrieren, dass es in WMI oft mehrere Wege gibt, sei hier noch gezeigt, dass man fast die gleichen Informationen auch über die Klasse Win32PerfRawData_PerfProcProcess erhalten kann. Die Unterschiede sind folgende:
1. Es gibt auch eine Win32PerfRawData_PerfProc_Process-Instanz mit Namen Total, die die aggregierten Daten aller Prozesse enthält.
2. Das Attribut WorkingSetSize heißt hier einfach nur WorkingSet.
3. Das Attribut Name enthält die Kurzform des Prozessnamens (ohne .exe).

WMI ermöglicht über den Performance Counter Provider Zugriff auf zahlreiche Leistungsdaten des Windows-Systems. Wenn Sie die PerfRawData-Klassen nicht finden, starten Sie den WMI-Dienst einmalig manuell an der Kommandozeile mit Winmgmt /resyncperf.

Programmcodebeispiele Visual Basic .NET (VB.NET)

' ============================
' .NET-Code-Beispiel in Visual Basic .NET
' Ausgabe der Speichernutzung der laufenden Prozesse
' (C) Holger@Schwichtenberg.de
' ============================
Sub WMI_Speichernutzung2()

Dim P As ROOT.CIMV2.PerfRawDataPerfProcProcess
Dim PMenge As ROOT.CIMV2.PerfRawDataPerfProcProcess.
PerfRawDataPerfProcProcessCollection

PMenge = P.GetInstances()

out("Speichernutzung der laufenden Prozesse:")
For Each P In PMenge
out(P.Name & ": " & _
Convert.ToDouble(P.WorkingSet) / 1024 & " KB")
Next

End Sub

Programmcodebeispiele CSharp (C#)

using System;
using System.Management;

using FCL_Buch.ROOT;

using FCL_Buch;

namespace FCLBuch._SystemManagement {

public class SamplesWMIBeispiele {
public void WMI_Speichernutzung2() {

// Ausgabe der Speichernutzung der laufenden Prozesse
PerfRawDataPerfProc_Process.PerfRawData_PerfProc_ProcessCollection pMenge = PerfRawData_PerfProcProcess.GetInstances();

FclOutput.PrintOutSubHeader("Speichernutzung der laufenden Prozesse:");
foreach (PerfRawDataPerfProcProcess p in pMenge)
FclOutput.PrintOut(p.Name + ": " + Convert.ToDouble(p.WorkingSet) / 1024 + " KB");
}
}
}

Querverweise

 Definition '.NET Framework Class Library'  Verfügbarkeit der Klasse 'System.Management.Win32_PerfRawData_PerfProc_Process'  Übersicht über den FCL-Namensraum 'System.Management'  .NET & Visual Studio Community Portal