Gerenciamento de Memória não é um problema resolvido. Estamos constantemente evoluindo formas de trabalhar memória em diferentes cenários. Garbage Collectors não são mágicos, são um conjunto de trade-offs entre performance e uso de memória e esta palestra vai desmistificar muitos desses conceitos que são válidos para Ruby mas também para Java e outras VMs.
4. "G1 GC is an incremental parallel compacting
GC that provides more predictable pause times
compared to CMS GC and Parallel Old GC. By
introducing a parallel, concurrent and multi-
phased marking cycle, G1 GC can work with
much larger heaps while providing reasonable
worst-case pause times."
22. • Slots de mesmo tamanho (não há problema com
fragmentação)
• Quanto mais heaps, mais lento
• Fase de marcação conservadora
• pode haver “leaks” (ex. constantes)
• Processo “Stop-the-World"
64. • “Stop-and-Copy”
• Sweep precisa ir slot a slot, neste é só considerar
tudo no primeiro heap como livre
• Gerenciamento interno de ponteiros
• Feito para corrigir fragmentação
• Ruby tem slots de mesmo tamanho
• Não suporta Copy-on-Write
75. • Partial Markings, Lazy Sweeps = Menos Stop
• Shady objects não vão para o Tomb
• Write Barriers (referência old para new - non-Shady only)
• Compatível com extensões C (Shady)
• Objetos em Tomb só são remarcados em Full Mark