/ / Virtuelles vs Physisches Speicherleck - windbg, sos

Virtuelles vs physisches Speicherleck - windbg, sos

Ich habe gerade schwer, den Unterschied zwischen virtuellem Speicher und physikalischem Speicherleck aus dem Debuggen der .net Anwendungsperspektive zu verstehen.

Kann jemand dieses Konzept mit einem Beispiel ausarbeiten, wie können wir nur eine Art von Leck und nicht andere haben?

TIA

Antworten:

1 für die Antwort № 1

Virtueller Speicher umfasst Bereiche eines Prozesses "sAdressraum, der für seine Verwendung als verfügbar markiert wurde. Wenn Sie Speicher verlieren, ist fast immer virtueller Speicher beteiligt, da dies das einzige Konzept ist, mit dem die meisten Programme umgehen.

Physischer Speicher wird normalerweise nur dann verbraucht, wenn aDas Programm greift auf den virtuellen Speicher zu, für den das Betriebssystem physischen Speicher bereitstellen muss. Dies ist selten unabhängig vom virtuellen Speicher, da es vom Betriebssystem gesteuert wird.

OTOH, ein Programm kann mehr Kontrolle ausübendie Zuweisung von physischem Speicher durch Erzwingen, dass bestimmte virtuelle Speicherseiten dem physischen Speicher zugeordnet bleiben (die Mechanismen hierfür variieren zwischen den Betriebssystemen). In solchen Fällen ist es möglich, dass ein fehlerhaftes Programm physischen Speicher verliert.

Eine weichere Form des physischen Speicherlecks ist, wenn aDas Programm berührt Seiten des virtuellen Speichers, auf die logischerweise nicht zugegriffen werden muss. Dies hält solche Seiten heiß und stört die Bemühungen des Betriebssystems, das Arbeitssatz (die Menge physikalisch abgebildeter Seiten) klein zu halten.