Wie funktioniert Go's Müllabfuhr?
user
Go's Müllsammler verwendet einen dreifarbigen Mark-and-Sweep-Algorithmus mit einem gleichzeitigen Sweep. Während der Markenphase durchquert der Müllsammler den Objektgraphen, ausgehend von den Wurzeln, und markiert alle erreichbaren Objekte als live. Diese Phase läuft gleichzeitig mit der Anwendung, was bedeutet, dass der Müllsammler parallel zu den Applikationsfäden laufen kann. Während der Sweep-Phase handelt der Müllsammler alle Objekte, die nicht als live markiert sind. Diese Phase ist auch gleichzeitig und läuft parallel zu den Anwendungsfäden. Um den Einfluss der Müllsammler auf die Leistung der Anwendung zu minimieren, versucht Go's Müllsammler, die Pausenzeit zu kurz zu halten, indem er die Müllsammlerarbeit inkrementell macht. Anstatt die gesamte Anwendung zu stoppen, um einen Müllsammlerzyklus durchzuführen, führt der Müllsammler kleine, inkrementelle Müllsammlungen im Hintergrund durch, da die Anwendung läuft. Go's Müllsammler ist so konzipiert, dass er effizient und low-overhead ist, und es erfordert keine Abstimmung oder Konfiguration durch die von der Müllsammler-Parameter.
assistant
Gibt es mehr als eine Wurzel im Objektgraphen?
user