ExpertiDict

Ruby · Avançado · Inglês · Técnico

ObjectSpace

/ˈɑbdʒɛkt speɪs/substantivo

Módulo que permite inspecionar os objetos vivos do CRuby: each_object percorre instâncias de uma classe e count_objects mostra contagens por tipo. Serve para depuração, não para lógica de produção.

Onde usar

Aparece ao caçar vazamentos de memória, contando quantas instâncias de uma classe continuam vivas, ou ao listar subclasses em ferramentas de desenvolvimento.

Em código

class Cliente; end
vivos = Array.new(3) { Cliente.new }
n = ObjectSpace.each_object(Cliente).count
p n  # => 3
p ObjectSpace.count_objects.key?(:TOTAL)
# => true

Exemplos

Count the live instances with ObjectSpace.each_object.

Conte as instâncias vivas com ObjectSpace.each_object.

ObjectSpace is for debugging, not for business logic.

O ObjectSpace é para depuração, não para regra de negócio.

Cuidado

É lento e depende do GC: objetos já coletados não aparecem e o resultado muda entre execuções. Não use em lógica de aplicação.

Veja também

Todos os termos de Ruby