有没有办法从运行的ruby进程转储内存中的对象?

问题描述:

在获得这些信息的同时杀死进程会很好。有没有办法从运行的ruby进程转储内存中的对象?

对于更多的铁杆也有BleakHouse它给你红宝石的特殊定制编译副本更好的内存泄漏追踪powarz

+0

黯淡的房子为别人工作?我试了一下,它只是在最微不足道的程序上抛弃了核心。在Ubuntu上这是Ruby 1.8.6 – 2008-09-24 17:51:51

一种快捷方式是ObjectSpace.each_object{|e| p e}。你可以做一些测试来确定你想要保留的东西,或者统一对象。

对于1.9.2/1.9.3还有的heap_dump宝石,它可以被注入使用一个正在运行的进程gdb的(但更稳定是是将其包括在过程本身,没有性能开销)

它转储到对象的引用,而不是对象本身,但如果你进入战斗泄漏,这是可用