Ermitteln, ob ein Leck vorhanden ist

Wenn die Windows-Leistung im Laufe der Zeit abnimmt und Sie vermuten, dass es zu einem Speicherverlust kommt, verwenden Sie Windows Leistungsmonitor, um zu untersuchen, ob ein Speicherverlust vorliegt. Dieser Prozess teilt Ihnen nicht mit, was die Quelle des Leaks ist, noch, ob es sich um den Benutzermodus oder den Kernelmodus handelt.

Starten Sie zunächst Leistungsmonitor. Um Leistungsmonitor zu öffnen, verwenden Sie eines der folgenden Verfahren:

  • Öffnen Sie das Startmenü, suchen Sie nach Leistungsmonitor, und klicken Sie auf das Ergebnis.
  • Verwenden Sie die Windows Key + R Tastenkombination, um den Befehl Ausführen zu öffnen, geben Sie ein perfmon, und klicken Sie zum Öffnen auf OK.

Fügen Sie nach dem Öffnen des Leistungsmonitor dem Standard Leistungsmonitor Graph die folgenden Leistungsindikatoren hinzu:

  • Arbeitsspeicher:>Pool ohne Auslagerte Bytes

  • Arbeitsspeicher:>Ausgelagerte Bytes im Pool

  • Auslagerungsdatei:>% Nutzung

Klicken Sie mit der rechten Maustaste auf die Leistungsmonitor unter Überwachungstools, und wählen Sie Eigenschaften aus.

Um ein Diagramm des Lecks im Zeitverlauf zu erfassen, legen Sie das Sample jedes Mal auf 600 Sekunden fest, um den Wert alle zehn Minuten zu messen. Legen Sie die Dauer fest, um genügend Aktivitäten zu erfassen. Wenn Sie ihn beispielsweise auf 24 Stunden festlegen möchten, wäre 60*60*24 = 86,400 der Wert möglicherweise auch, die Daten zur späteren Prüfung in einer Datei zu protokollieren.

Starten Sie die Anwendung oder den Test, von der Sie glauben, dass sie das Leck verursacht. Zulassen, dass die Anwendung oder der Test für einige Zeit ungestört ausgeführt wird; verwenden Sie den Zielcomputer während dieser Zeit nicht. Lecks sind in der Regel langsam und können Stunden dauern, bis sie erkannt werden. Warten Sie einige Stunden, bevor Sie entscheiden, ob ein Leak aufgetreten ist.

Überwachen Sie die Leistungsmonitor Leistungsindikatoren. Nachdem der Test gestartet wurde, ändern sich die Zählerwerte schnell, und es kann einige Zeit dauern, bis die Werte des Speicherpools einen stabilen Zustand erreichen.

Speicherverluste im Benutzermodus befinden sich immer im ausgelagerten Pool und führen dazu, dass sowohl der Zähler pool paged Bytes als auch der Auslagerungsdateiverbrauchszähler im Laufe der Zeit stetig zunehmen. Speicherlecks im Kernelmodus verbrauchen in der Regel nicht ausgelagerte Pools, was dazu führt, dass sich der Zähler für nicht ausgelagerte Bytes des Pools erhöht, obwohl auch ausgelagerter Arbeitsspeicher betroffen sein kann. Gelegentlich können diese Leistungsindikatoren falsch positive Ergebnisse anzeigen, da eine Anwendung Daten zwischenspeichert.