Ruby:当前实例化的对象

时间:2011-10-09 19:29:45

标签: ruby object

  1. 有没有办法获取所有当前实例化对象的列表?

  2. 该列表是否可以在发生变化时异步发送事件/消息?

2 个答案:

答案 0 :(得分:4)

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}

答案 1 :(得分:1)

ObjectSpace是你的朋友;不确定#2。