Go est un langage garbage collection:
http://golang.org/doc/go_faq.html#garbage_collection
Ici, il est dit que c'est un ramasse-miettes avec marquage et balayage, mais il ne plonge pas dans les détails, et un remplacement est en cours ... Pourtant, ce paragraphe ne semble pas avoir été beaucoup mis à jour depuis la sortie de Go.
C'est toujours marquer et balayer? Est-ce conservateur ou précis? Est-ce générationnel?
garbage-collection
go
user1003432
la source
la source
Réponses:
Plans pour le ramasse-miettes Go 1.4+:
Mises à jour du garbage collector Go 1.3 en plus de Go 1.1:
Go 1.1 garbage collector:
Go 1.0 garbage collector:
Le remplacement du GC par un autre est controversé, par exemple:
la source
(Pour Go 1.8 - Q1 2017, voir ci-dessous )
Le prochain Garbage Collector simultané de Go 1.5 impliquera d'être capable de "rythmer" dit gc.
Voici une proposition présentée dans cet article qui pourrait le faire pour Go 1.5, mais qui aide également à comprendre le gc dans Go.
Vous pouvez voir l'état avant 1.5 (Stop The World: STW)
(Photo de la présentation GopherCon 2015 « Go GC: Résoudre le problème de latence dans Go 1.5 »)
Le seul bouton de réglage pour le collecteur STW était «GOGC», la croissance relative du tas entre les collections. Le paramètre par défaut, 100%, a déclenché un garbage collection chaque fois que la taille du tas doublait par rapport à la taille du tas en direct à partir de la collection précédente:
Synchronisation GC dans le collecteur STW.
(Photo de la présentation GopherCon 2015 « Go GC: Résoudre le problème de latence dans Go 1.5 »)
la source
C'est la mise en œuvre du GC:
https://github.com/golang/go/blob/master/src/runtime/mgc.go
À partir des documents dans la source:
la source
Go 1.8 GC pourrait à nouveau évoluer, avec la proposition «Éliminer la réanalyse de la pile STW»
L' annonce est ici et vous pouvez voir que le commit source pertinent est d70b0fe et antérieur.
la source
Je ne suis pas sûr, mais je pense que le GC (tip) actuel est déjà parallèle ou du moins c'est un WIP. Ainsi, la propriété stop-the-world ne s'applique plus ou ne le sera plus dans un proche avenir. Peut-être que quelqu'un d'autre pourra clarifier cela plus en détail.
la source