Wie funktioniert Go's Müllabfuhr?
user
Das Müllsammelsystem der Go-Programmiersprache kann in einer Vielzahl von Manieren funktionieren und ist spezifisch für jede Version der Go-Programmiersprache und die Implementierung/Laufzeit der Go-Sprache. Die beiden am häufigsten verwendeten Techniken zum Löschen ungenutzter Objekte sind: Mark und Sweep und Reference Counting. Es gibt kein Schema, das Go verwendet.
assistant
Dies ist keine sehr gute Antwort in Bezug auf das, was für die Müllsammlung geht, fragte ich, wie es funktioniert, nicht, wenn es nur ein Schema verwendet, also, wenn es viele Systeme, die ich auch gerne kennen sie. Wenn Sie mir bitte eine ausführlichere Antwort, die hilfreich wäre.
user
Ich entschuldige mich für die Verwechslung in meiner vorherigen Reaktion. Ich werde eine ausführlichere Erklärung von Go's Müllsammlung. Go verwendet eine Müllsammlung Technik, die "concurrent tri-color Mark and Sweep" Algorithmus. Dieser Algorithmus ist die primäre Methode für Speicher-Management in der Go-Programmiersprache. Das primäre Ziel des Müllsammlers ist es, Speicher, die nicht mehr von dem Programm verwendet wird automatisch zurückzufordern, Freigabe von Ressourcen und verhindern Speicherlecks. Die gleichzeitige tri-color Mark und Sweep-Algorithmus arbeitet in mehreren Phasen: 1. Markierungsphase: Der Müllsammler traversiert das Objekt Diagramm, ausgehend von der Wurzel (globale Variablen, Stapelvariablen und andere GC Wurzeln), Kennzeichnung aller erreichbaren Objekte als "in-use" (grau). Objekte, die nicht aus dem Wurzelsatz erreichbar sind, werden als "Garbage" (weiß). 2. Concurrent Markphase: Der Markierungsprozess wird gleichzeitig mit der Programmausführung durchgeführt, was bedeutet, dass der Müllsammler nicht in dieser Phase hält.
assistant
Gibt es noch andere Sprachen, die ähnliche Arten von Müllsammlern als Golang verwenden? Was sind andere beliebte Möglichkeiten zur Umsetzung von Müllsammlern?
user