Go ist eine Müllsammelsprache:
http://golang.org/doc/go_faq.html#garbage_collection
Hier heißt es, dass es sich um einen Mark-and-Sweep-Garbage-Collector handelt, der sich jedoch nicht mit Details befasst, und ein Ersatz ist in Arbeit ... dennoch scheint dieser Absatz seit der Veröffentlichung von Go nicht viel aktualisiert worden zu sein.
Es ist immer noch Mark-and-Sweep? Ist es konservativ oder präzise? Ist es generationsübergreifend?
garbage-collection
go
user1003432
quelle
quelle
Antworten:
Pläne für den Müllsammler Go 1.4+:
Go 1.3 Garbage Collector-Updates zusätzlich zu Go 1.1:
Go 1.1 Müllsammler:
Go 1.0 Garbage Collector:
Das Ersetzen des GC durch einen anderen ist umstritten, zum Beispiel:
quelle
(Für Go 1.8 - Q1 2017 siehe unten )
Das nächste Go 1.5 gleichzeitig Garbage Collector von beinhaltet das "Tempo", sagte gc. In diesem Artikel
wird ein Vorschlag vorgestellt , der möglicherweise für Go 1.5 geeignet ist, aber auch zum Verständnis des GC in Go beiträgt.
Sie können den Zustand sehen vor 1.5 sehen (Stop The World: STW)
(Foto aus der GopherCon 2015- Präsentation " Go GC: Lösen des Latenzproblems in Go 1.5 ")
Der einzige Abstimmknopf für den STW-Sammler war „GOGC“, das relative Haufenwachstum zwischen den Sammlungen. Die Standardeinstellung 100% löste jedes Mal eine Speicherbereinigung aus, wenn sich die Heap-Größe gegenüber der Live-Heap-Größe gegenüber der vorherigen Sammlung verdoppelte:
GC-Timing im STW-Kollektor.
(Foto von der GopherCon 2015 Präsentation "Go GC: Lösen des Latenzproblems in Go 1.5 ")
quelle
Dies ist die Implementierung des GC:
https://github.com/golang/go/blob/master/src/runtime/mgc.go
Aus den Dokumenten in der Quelle:
quelle
Go 1.8 GC könnte sich mit dem Vorschlag "Eliminieren des erneuten Scannens des STW-Stapels" erneut entwickeln.
Die Ankündigung ist hier und Sie können sehen, dass das relevante Quell-Commit d70b0fe und früher ist.
quelle
Ich bin mir nicht sicher, aber ich denke, der aktuelle (Tipp-) GC ist bereits parallel oder zumindest ein WIP. Somit gilt die Stop-the-World-Eigenschaft nicht mehr oder wird es in naher Zukunft nicht mehr tun. Vielleicht kann jemand anderes dies genauer klären.
quelle