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中