Verarbeiten von Informationen zur Speicherauslastung
Die GetProcessMemoryInfo-Funktion verwendet ein Prozesshandle als Eingabe und füllt eine PROCESS_MEMORY_COUNTERS Struktur mit Informationen zu den Speicherstatistiken für den Prozess. Das cb-Element empfängt die Größe der Struktur. Das PageFaultCount-Element empfängt die Anzahl der Seitenfehler. Die restlichen Mitglieder erhalten die aktuelle und die Spitzenauslastung des Arbeitsspeichers in den folgenden Kategorien:
- Arbeitssatz
- ausgelagerter Pool
- Pool ohne Auslagerung
- Auslagerungsdatei
Der Arbeitssatz ist die Menge an Arbeitsspeicher, die dem Prozesskontext zu einem bestimmten Zeitpunkt physisch zugeordnet ist. Arbeitsspeicher im ausgelagerten Pool ist Systemspeicher, der in die Auslagerungsdatei auf dem Datenträger (ausgelagert) übertragen werden kann, wenn er nicht verwendet wird. Arbeitsspeicher im nicht ausgelagerten Pool ist Systemspeicher, der nicht auf den Datenträger ausgelagert werden kann, solange die entsprechenden Objekte zugeordnet sind. Die Seitendateinutzung gibt an, wie viel Arbeitsspeicher für den Prozess in der System paging-Datei reserviert ist. Wenn die Arbeitsspeicherauslastung zu hoch ist, übergibt der virtuelle Speicher-Manager den ausgewählten Arbeitsspeicher auf den Datenträger. Wenn ein Thread eine Seite benötigt, die sich nicht im Arbeitsspeicher befindet, lädt der Speicher-Manager sie aus der Auslagerungsdatei neu.