Ruby的文檔有這樣的描述:ObjectSpace - 它是什麼以及人們如何使用它?
的對象空間模塊包含 數與 垃圾收集設施互動和 讓你遍歷所有生活 對象與迭代器例程。
對象空間還提供了 對象終結,特效,這將是 時調用特定的對象是大約 由垃圾回收銷燬支持。
任何人都可以用一種更簡單的語言解釋這一點,如果不是這樣,至少可以提供這方面的用途?
Ruby的文檔有這樣的描述:ObjectSpace - 它是什麼以及人們如何使用它?
的對象空間模塊包含 數與 垃圾收集設施互動和 讓你遍歷所有生活 對象與迭代器例程。
對象空間還提供了 對象終結,特效,這將是 時調用特定的對象是大約 由垃圾回收銷燬支持。
任何人都可以用一種更簡單的語言解釋這一點,如果不是這樣,至少可以提供這方面的用途?
A garbage collector是具有託管內存的語言的結構。這是管理內存的東西。從本質上講,垃圾收集器的工作是確定何時不再需要分配的內存並將其釋放。
當你使用語言,垃圾收集,還有您可能想要做某些事情:
對象空間給所有類的所有實例訪問做這個性質的東西。從本質上講,它是一種訪問任何東西以及當前正在使用分配內存的一切的方法。
例如,計算某個類的實例數:
class Examp
def self.obj_count
count = 0
ObjectSpace.each_object(self) do |b|
count += 1
end
return count
end
end
a = Examp.new
b = Examp.new
c = Examp.new
puts Examp.obj_count #=> 3
我知道類變量,位是使用的唯一的例子。每當你想對類的每個實例執行一些操作時,它都可能有用。
ObjectSpace
的實際使用是derive the full class hierarchy of Exceptions。
嗨,謝謝你的回答。你是否也碰巧知道這個的任何實際用法? /好奇 – RubyKumar 2011-02-25 09:36:18
http://37signals.com/svn/posts/2742-the-road-to-faster-tests – demas 2011-02-25 09:40:57