Есть ли способ сбросить объекты в памяти из работающего процесса Ruby?

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

  •  02-07-2019
  •  | 
  •  

Вопрос

Убить процессы при получении этой информации было бы нормально.

Это было полезно?

Решение

Для более хардкорных также есть Мрачный дом который дает вам специальную, скомпилированную копию Ruby с улучшенным отслеживанием утечек памяти.

Другие советы

Быстрый и грязный способ был бы ObjectSpace.each_object{|e| p e}.Вы можете провести несколько тестов, чтобы определить, что вы хотите сохранить, или маршалировать объекты.

Для 1.9.2/1.9.3 есть драгоценный камень heap_dump, его можно внедрить в работающий процесс с помощью gdb (но более стабильным было бы включить его в сам процесс, без затрат на производительность)

Он выгружает ссылки на объекты, а не сами объекты, но это можно использовать, если вы боретесь с утечками.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top