Frage

Die erste Phase eines Mark-Sweep-Müllsammlers besteht darin, alle lebenden Objekte auf dem Haufen zu markieren (zu finden). Dazu muss es einen Ausgangspunkt oder eine Wurzel geben, von wo aus die gesamte Markierung beginnt. Wie identifiziert GC solche Wurzeln?

War es hilfreich?

Lösung

Mit der Technik, die als Root Set Enumeratios bezeichnet wird, werden alle Wurzeln identifiziert. Hier ist Satz aus Mark-Sweep Patentdokument.

In der ersten Phase können alle direkten Verweise auf Objekte aus derzeit ausgeführten Programmen identifiziert werden. Diese Referenzen werden als Wurzeln bezeichnet oder zusammen einen Root -Satz, und ein Prozess der Identifizierung aller dieser Referenzen kann als Root -Set -Aufzählung bezeichnet werden

Hier ist Link für Patentdokument. Mark Sweep Patent Link

Obwohl es von .Net Guy war, fühle ich mich Grundlagen von Mark Sweep Link gibt Ihnen ein gutes Verständnis dafür, wie es funktioniert.

Andere Tipps

"Es wird angenommen Alle Objekte, auf die sich überall im Anrufstack (dh alle lokalen Variablen und Parameter in den derzeit aufgerufenen Funktionen) verwiesen) und alle globalen Variablen.

Wikipedia

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top