O G1 GC é um coletor de lixo incremental paralelo que fornece tempos de pausa mais previsíveis em comparação com o CMS GC e Parallel Old GC. Introduzindo um ciclo de marcação paralelo, concorrente e multifásico, o G1 GC pode trabalhar com heap muito maiores fornecendo tempos de pausa razoáveis no pior caso.
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."
5. "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."
41. • Slots de mesmo tamanho (não há problema com
fragmentação)
42. • Slots de mesmo tamanho (não há problema com
fragmentação)
• Quanto mais heaps, mais lento
• Fase de marcação conservadora
43. • 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)
44. • 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"
131. • “Stop-and-Copy”
• Sweep precisa ir slot a slot, neste é só considerar
tudo no primeiro heap como livre
132. • “Stop-and-Copy”
• Sweep precisa ir slot a slot, neste é só considerar
tudo no primeiro heap como livre
• Gerenciamento interno de ponteiros
133. • “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
134. • “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
135. • “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
156. • Partial Markings, Lazy Sweeps = Menos Stop
• Shady objects não vão para o Tomb
157. • 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)
158. • 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)
159. • 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