Der private Arbeitssatz des Task-Managers ist niedriger als die privaten Bytes der Leistungsüberwachung

611
Trisha

Ich versuche, ein Speicherverlust in einer Anwendung zu verfolgen, also ließ ich die privaten Bytes des Leistungsmonitors grafisch darstellen. Ein Mal sagte der Leistungsmonitor, dass die privaten Bytes anstiegen, aber im Taskmanager blieb der private Arbeitssatz gleich und niedriger als die Anzahl der privaten Bytes.

Ich verstehe, ob der private Arbeitssatz des Task-Managers höher ist als die privaten Bytes des Performance-Monitors, da ich weiß, dass der private Arbeitssatz Shared Memory enthält. Aber bedeutet es etwas Besonderes, wenn der private Arbeitssatz niedriger als die privaten Bytes ist?

1
Ein privater Arbeitssatz schließt keine gemeinsamen Objekte ein, es sei denn, der Prozess selbst hat sie erstellt. Private WS sollte pro Prozess immer niedriger oder gleich privaten Bytes sein. Um Ihre Frage direkt zu beantworten, wenn Private WS weniger als Private Bytes ist, sollte dies darauf hinweisen, dass ein Teil des Prozesses auf die Festplatte ausgelagert wurde. Frank Thomas vor 8 Jahren 0
Verwenden Sie ETW, um einen Speicherverlust zu verfolgen: https://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-154-Memory-Footprint-and-Leaks magicandre1981 vor 8 Jahren 0

1 Antwort auf die Frage

0
Jamie Hanrahan

Privater Arbeitssatz ist physischer Arbeitsspeicher (RAM), Private Bytes ist virtuell. (Es wird an einigen Stellen als "Private Commited" bezeichnet.) Ein privater Arbeitssatz ist der eingebettete oder "residente" Teilsatz von Private Bytes. Das ist also völlig erwartetes Verhalten.

Beachten Sie, dass der Unterschied nicht notwendigerweise "ausgelagert wird". Privater Speicher, für den ein Commit ausgeführt wurde, der aber noch nicht referenziert wurde, belegt weder RAM noch Festplattenspeicher.

Dies lässt sich leicht mit dem Testlimit-Tool sysinternals überprüfen. Mit der Option -m wird ein privater virtueller Adressraum festgeschrieben, aber es wird nicht referenziert. Die Zuordnung wird in "privaten Bytes" angezeigt, jedoch nicht im Arbeitssatz ODER im verwendeten Auslagerungsdateibereich. Mit der Option -d wird der virtuelle Speicher festgeschrieben, aber auch "berührt" (geschrieben), was dazu führt, dass er "fehlerhaft" ist, und erst dann weist das Betriebssystem RAM für diesen Speicher zu.

Würde die Person, die heruntergestimmt hat, erklären, warum? Geben Sie vielleicht eine Referenz für das Widersprechen von Informationen an. Jamie Hanrahan vor 5 Jahren 0