Есть ли способ сбросить объекты в памяти из работающего процесса Ruby?
Вопрос
Убить процессы при получении этой информации было бы нормально.
Решение
Для более хардкорных также есть Мрачный дом который дает вам специальную, скомпилированную копию Ruby с улучшенным отслеживанием утечек памяти.
Другие советы
Быстрый и грязный способ был бы ObjectSpace.each_object{|e| p e}
.Вы можете провести несколько тестов, чтобы определить, что вы хотите сохранить, или маршалировать объекты.
Для 1.9.2/1.9.3 есть драгоценный камень heap_dump, его можно внедрить в работающий процесс с помощью gdb (но более стабильным было бы включить его в сам процесс, без затрат на производительность)
Он выгружает ссылки на объекты, а не сами объекты, но это можно использовать, если вы боретесь с утечками.
Не связан с StackOverflow