#ruby #object
#ruby #объект
Вопрос:
-
Есть ли способ получить список всех созданных в данный момент объектов?
-
Можно ли создать этот список для асинхронной отправки события / сообщения при каждом его изменении?
Комментарии:
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.