2011-10-09 68 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}