ruby Ruby对象空间
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ruby Ruby对象空间相关的知识,希望对你有一定的参考价值。
# particular type counts
ObjectSpace.each_object(ActiveRecord::Base).count
# all objects counts (ruby types)
ObjectSpace.count_objects
# all object counts (program types)
counts = {}
counts.default = 0
ObjectSpace.each_object(Object) { |o| counts[o.class] += 1 }
counts.sort_by { |_, value| -1 * value }.take(10)
# destructor
class MyClass
attr_reader :name
def initialize(name)
@name = name
ObjectSpace.define_finalizer(self, MyClass.finalize(name))
end
def self.finalize name
proc { puts "#{name} Going Down!"}
end
end
# run block for each object
ObjectSpace.each_object(MyClass) {|obj| p obj.name}
以上是关于ruby Ruby对象空间的主要内容,如果未能解决你的问题,请参考以下文章
Ruby知识概要
ruby 从命名空间#ruby #autoload自动加载一个类
Ruby 类实例变量与类变量
Ruby 命名空间
Ruby 嵌套模块作为命名空间
ruby 将空间数据加载到PG中