Arbeitssatzinformationen
Der Arbeitssatz eines Prozesses ist die Menge an Arbeitsspeicher, die seinem Prozesskontext physisch zugeordnet ist. Mit PSAPI können Sie Momentaufnahmen des Arbeitssatzes erstellen oder den Arbeitssatz überwachen.
Die QueryWorkingSet- oder QueryWorkingSetEx-Funktion füllt einen Puffer mit einer Momentaufnahme der Informationen für jede Seite im aktuellen Arbeitssatz des angegebenen Prozesses aus. Die Funktion meldet nur die Seiten, die zum genauen Zeitpunkt des Aufrufs physisch vorhanden sind.
Sie können die Workingsetüberwachung verwenden, um herauszufinden, wie viel zusätzlichen RAM ein bestimmter Vorgang benötigt (z. B. das Speichern einer Datei). Um mit der Überwachung des Arbeitssatzes zu beginnen, rufen Sie die InitializeProcessForWsWatch-Funktion auf. Nicht bei allen Prozessen können Sie ihre Arbeitssatzinformationen lesen. Stellen Sie daher sicher, dass die Funktion einen Wert ungleich 0 (null) zurückgibt, bevor Sie fortfahren. Rufen Sie als Nächstes die GetWsChanges-Funktion auf. Diese Funktion meldet nur die Seiten, die in den Arbeitsspeicher geladen wurden, seit Sie mit der Überwachung des Arbeitssatzes begonnen haben. Die Funktion gibt Daten in einem Array von _ PSAPI-WS _ WATCH _ INFORMATION-Strukturen zurück, eine Struktur für jede neue Seite, die dem Arbeitssatz des Prozesses hinzugefügt wird. Die -Struktur teilt Ihnen mit, welche Seiten sich im Arbeitsspeicher befinden und was dazu geführt hat, dass das System sie ausgibt.
Die EmptyWorkingSet-Funktion nimmt ein Prozesshandle an. Dadurch werden so viele Seiten wie möglich aus dem Arbeitssatz des Prozesses entfernt. Dieser Vorgang ist in erster Linie für Tests und Optimierungen nützlich. Beachten Sie, dass die SetProcessWorkingSetSize-Funktion dasselbe macht, wenn Sie sie -1 für die mindeste und maximale Größe übergeben.