Coletor de lixo - Garbage-first collector

O Garbage-First Collector ( G1 ) é um algoritmo de coleta de lixo introduzido na máquina virtual Oracle HotSpot Java (JVM) 6 e compatível com a atualização 7 4 . Ele foi planejado para substituir o coletor de varredura de marca simultânea (CMS) no JVM 7 e tornou-se padrão no Java 9.

Coletor de lixo

O coletor Garbage-first (G1) é um coletor de lixo do tipo servidor , direcionado para multiprocessadores com grandes memórias , que atende a uma meta de tempo real flexível com alta probabilidade, enquanto atinge alto rendimento . G1 coleta preferencialmente regiões com a menor quantidade de dados ativos, ou "lixo primeiro". G1 é a substituição de longo prazo do CMS. Operações de heap inteiro, como marcação global, são executadas simultaneamente com os encadeamentos do aplicativo , para evitar interrupções proporcionais ao tamanho do heap ou dos dados ativos. A marcação simultânea fornece integridade de coleta e identifica regiões prontas para recuperação por meio de evacuação por compactação. Essa evacuação é realizada em paralelo em multiprocessadores, para diminuir os tempos de pausa e aumentar o rendimento.

O G1 foi introduzido pela primeira vez como uma opção experimental no Java SE 6 Atualização 14, onde pode ser habilitado com os dois parâmetros de linha de comando a seguir: -XX:+UnlockExperimentalVMOptionse -XX:+UseG1GC Com o JDK 7, o G1 foi planejado para substituir o CMS no Hotspot JVM. Existem duas diferenças principais entre CMS e G1. A primeira é que G1 é um coletor compactador . O G1 compacta o suficiente para evitar completamente o uso de listas livres de baixa granularidade para alocação, o que simplifica consideravelmente partes do coletor e elimina principalmente problemas de fragmentação em potencial . Além da compactação, o G1 oferece pausas de coleta de lixo mais previsíveis do que o coletor CMS e permite que os usuários definam seus destinos de pausa desejados.

No Java 9 G1 foi feito o coletor de lixo padrão, apesar do contador do Google propor o conhecido CMS como padrão, alegando que o CMS modificado que ele usa tem um desempenho melhor do que o G1. Desde então, a Oracle melhorou muito a taxa de transferência, latência e espaço de memória do G1 .

Produtos relacionados

Comportamento em tempo real garantido mesmo com coleta de lixo requer um coletor de lixo em tempo real, tais como aqueles que vêm com o Sun Java RTS ou IBM ‘s WebSphere RT.

Veja também

Referências

links externos