如何计算在 Ruby 中创建的对象的数量

Gab*_*rco 4 ruby

是否可以计算在 Ruby 应用程序中创建的对象总数?如果是这样,我该怎么做?

我知道如何计算我创建的给定类的实例数,在这篇文章中,但是有没有办法获取应用程序中任何类(包括内部类)创建的对象数?

Ser*_*sev 5

你应该使用

ObjectSpace.count_objects
Run Code Online (Sandbox Code Playgroud)

例如,这是它在新的 IRB 会话中输出的内容:

{
        :TOTAL => 30161,
         :FREE => 378,
     :T_OBJECT => 152,
      :T_CLASS => 884,
     :T_MODULE => 30,
      :T_FLOAT => 4,
     :T_STRING => 11517,
     :T_REGEXP => 165,
      :T_ARRAY => 3395,
       :T_HASH => 180,
     :T_STRUCT => 2,
     :T_BIGNUM => 2,
       :T_FILE => 15,
       :T_DATA => 1680,
      :T_MATCH => 99,
    :T_COMPLEX => 1,
       :T_NODE => 11620,
     :T_ICLASS => 37
}
Run Code Online (Sandbox Code Playgroud)