/ / Speicher-Snapshot löst Garbage Collection in dotMemory aus - c #, asp.net, Speicherverwaltung, Speicherlecks, Garbage-Collection

Memory Snapshot löst Garbage Collection in dotMemory aus - c #, asp.net, Speicherverwaltung, Speicherlecks, Garbage-Collection

Ich verwende dotMemory, um asp.net mvc-Anwendung zu profilieren, die auf IIS läuft.

Und ich vermute, dass "get snapshot" bewirkt, dass GC gen2 läuft. Warum? Hier ist das Bild:

Snapshot verursacht GC Frage ist: ist es normales Verhalten? Warum kann ich keinen Schnappschuss bekommen, der mir all diese Dinge zeigt, die von GC-Sachen nicht erfasst wurden? Jedes Mal, wenn ich Schnappschüsse erhalte, sinkt die Speicherauslastung.

Antworten:

6 für die Antwort № 1

Ja, dies ist das normale Verhalten, da es eine vollständige Speicherbereinigung durchführt, bevor ein Snapshot erstellt wird. Wenn Sie feststellen, dass die Speicherauslastung bei einem Snapshot sinkt, ist das ein gutes Zeichen.

Der Garbage Collector reinigt den Speicher nur dann, wenn vorhandenein Gedächtnisstress. Wenn Sie nach Speicherlecks suchen möchten, müssen Sie eine vollständige Speicherbereinigung ausführen und einen Snapshot erstellen. Wenn etwas bleibt, ist das ein Speicherleck.

Im Allgemeinen sollten Sie nach dem Ausführen der zu testenden Funktionalität einen sauberen Basis-Snapshot und dann einen weiteren sauberen Snapshot erstellen und dann beide Snapshots vergleichen.


1 für die Antwort № 2

Die Microsoft-Profiling-API arbeitet auf diese Weise, dotMemory initiiert das Sammeln von Datenmüll und sammelt ein Objektdiagramm während der GC.