Existe uma maneira para despejar os objetos na memória de um processo de rubi em execução?

StackOverflow https://stackoverflow.com/questions/116527

  •  02-07-2019
  •  | 
  •  

Pergunta

Matar o processo ao obter esta informação seria ótimo.

Foi útil?

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
scroll top