【发布时间】:2011-02-08 07:37:39
【问题描述】:
我想知道对于 Ruby 对象是否有类似的 .finalize() 方法,这标志着它们已准备好进行垃圾回收。如果我要创建 20,000 个对象并且每个实例都有一个计数器,我希望该对象在达到零时被标记为垃圾回收。我知道这几乎是一种 Java 方法,但我没有足够的 Ruby 底层经验来理解如何更好地做到这一点。
感谢您的回答、cmets 和反馈!
【问题讨论】:
-
finalize 不会将对象标记为垃圾回收,它是一种在 GC 删除对象之前运行(尽管不能保证)的方法
-
很高兴知道,感谢您指出这一点。是否有一种特定的方法可以显式地破坏对象或至少将其置于运动状态?我喜欢魔术,但我也喜欢了解暴露的技巧。
-
_why 用 Ruby 写了一篇很棒的关于 GC 的文章,名为“The Fully Upturned Bin”,幸运的是,当他决定从 Internet 上消失时得到了保存:viewsourcecode.org/why/hacking/theFullyUpturnedBin.html
-
您只需要删除对对象 e 的所有引用。 G。如果您有一个引用 x,您只需将其设置为 null 或者您有一个局部变量,就会超出范围。如果没有引用一个对象,它对 GC 可用。
标签: ruby oop garbage-collection