Ruby: объекты, созданные в данный момент

#ruby #object

#ruby #объект

Вопрос:

  1. Есть ли способ получить список всех созданных в данный момент объектов?

  2. Можно ли создать этот список для асинхронной отправки события / сообщения при каждом его изменении?

Комментарии:

1. От этого набора задач мне хочется плакать… Я надеюсь, что это просто помощник для отладки / диагностики.

2. для # 2 создайте новый поток в своем irb и делегируйте наблюдение за вашими атрибутами

Ответ №1:

Модуль ObjectSpace содержит ряд подпрограмм, которые взаимодействуют со средством сборки мусора и позволяют вам обходить все живые объекты с помощью итератора.

 ObjectSpace.count_objects
# => {:TOTAL=>56824, :FREE=>7190, :T_OBJECT=>5943, :T_CLASS=>878, :T_MODULE=>35, :T_FLOAT=>7, :T_STRING=>26950, :T_REGEXP=>189, :T_ARRAY=>10224, :T_HASH=>193, :T_STRUCT=>1, :T_BIGNUM=>5, :T_FILE=>7, :T_DATA=>1674, :T_MATCH=>22, :T_COMPLEX=>1, :T_NODE=>3468, :T_ICLASS=>37}
  

Ответ №2:

ObjectSpace — ваш друг; не уверен насчет # 2.