Existe uma maneira para despejar os objetos na memória de um processo de rubi em execução?
Pergunta
Matar o processo ao obter esta informação seria ótimo.
Solução
Para os mais incondicional existe também BleakHouse o que lhe dá uma cópia compilada por encomenda especial do rubi com uma melhor memória vazamento de rastreamento powarz
Outras dicas
Uma maneira rápida e suja seria ObjectSpace.each_object{|e| p e}
. Você poderia fazer alguns testes para determinar o que você queria manter, ou empacotar os objetos.
Para 1.9.2 / 1.9.3 há gema heap_dump, pode ser injectado num processo de execução usando gdb (mas mais estável foi é incluí-lo, por si só, nenhuma sobrecarga desempenho do processo)
Ele despeja referências a objetos, não os próprios objetos, mas esta é utilizável se você estiver em combate vazamentos
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow