Ruby · Avançado · Inglês · Técnico
garbage collector
Parte da VM que recupera a memória de objetos sem referências. O do CRuby é geracional, incremental e usa marcação e varredura, com pausas curtas na maioria dos casos.
Onde usar
Importa ao investigar uso de memória e pausas. Em produção, GC.stat e ObjectSpace mostram objetos alocados; reduzir alocações costuma ajudar mais do que ajustar variáveis de ambiente do GC.
Em código
antes = GC.count
100_000.times { 'x' * 100 }
GC.start
puts GC.count - antes > 0 # => true
puts GC.stat[:total_allocated_objects] > 0Exemplos
The garbage collector pauses were small after we cut allocations.
As pausas do garbage collector ficaram pequenas depois que cortamos alocações.
Don't call GC.start in production code.
Não chame GC.start em código de produção.
Cuidado
Não é preciso nem possível liberar objetos à mão: chamar GC.start em código de aplicação raramente ajuda.
Sinônimos
GC, coletor de lixo