2011-10-09 67 views
3
  1. 有没有办法获得当前所有实例化对象的列表?Ruby:目前实例化的对象

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

+2

这套任务让我想哭......我希望它只是作为一个调试/诊断助手。 – 2011-10-09 19:35:01

+0

for#2,在您的irb中创建一个新线程并委派您的属性的监视 – apneadiving

回答

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}