Freigeben über


Arbeitssatzinformationen

Der Arbeitssatz eines Prozesses ist die Menge des Arbeitsspeichers, der physisch dem Prozesskontext 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 zu dem Zeitpunkt, zu dem sie aufgerufen wird, physisch vorhanden sind.

Sie können die Arbeitssatzüberwachung verwenden, um herauszufinden, wie viel zusätzlicher RAM ein bestimmter Vorgang benötigt (z. B. speichern einer Datei). Rufen Sie die Funktion InitializeProcessForWsWatch auf, um mit der Überwachung des Arbeitssatzes zu beginnen. Nicht bei allen Prozessen können Sie ihre Arbeitssatzinformationen lesen. Stellen Sie daher sicher, dass die Funktion einen Wert ungleich null zurückgibt, bevor Sie fortfahren. Rufen Sie als Nächstes die GetWsChanges-Funktion auf . Diese Funktion meldet nur die Seiten, die seit Beginn der Überwachung des Arbeitssatzes in den Arbeitsspeicher geladen wurden. 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 sie vom System ausgelagert wurden.

Die Funktion EmptyWorkingSet verwendet ein Prozesshandle. Es entfernt so viele Seiten wie möglich aus dem Prozessarbeitssatz. Dieser Vorgang ist in erster Linie für Tests und Optimierungen nützlich. Beachten Sie, dass die SetProcessWorkingSetSize-Funktion dasselbe tut, wenn Sie sie für die minimale und maximale Größe übergeben -1.

Arbeitssatz