首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >红宝石ObjectSpace对象分配跟踪的解释?

红宝石ObjectSpace对象分配跟踪的解释?
EN

Stack Overflow用户
提问于 2017-02-16 17:05:47
回答 1查看 802关注 0票数 4

我正在尝试调试Rails应用程序中的内存泄漏,并试图通过使用拨款获得现有对象的转储。

为了更好地理解输出,我认为我应该完全理解输出JSON行的含义:

代码语言:javascript
复制
{
   "address":"0x7fb716009c20",
   "type":"STRING",
   "class":"0x7fb7360d40e0",
   "embedded":true,
   "bytesize":1,
   "value":"f",
   "encoding":"UTF-8",
   "file":"/Users/songyy/.rvm/gems/ruby-2.3.1/gems/activerecord-4.2.7.1/lib/active_record/connection_adapters/abstract/quoting.rb",
   "line":78,
   "method":"unquoted_false",
   "generation":93,
   "memsize":40,
   "flags":{
      "wb_protected":true,
      "old":true,
      "uncollectible":true,
      "marked":true
   }
}

是否有任何引用,解释了这个JSON对象中项目的确切含义?

我特别感兴趣的是:

  • 班级
  • 嵌入式
  • 拜特赛
  • 生成
  • 标志
    • wb_protected
    • 年长的
    • 无收
    • 标上

EN

回答 1

Stack Overflow用户

发布于 2017-11-23 23:56:29

类:基本上是obj.class.object_id

embedded:如果字符串/数组适合于RVALUE (x64上的40字节),则为true

bytesize:奇怪的是它是1,它将是RVALUE之上所需的所有额外字节。

生成:对象被分配到的GC“生成”。数字越小,物体就越老。

wb_protected:写屏障受保护,意味着对象在年轻的堆中不能移动到老一代堆中。

标记: GC标记对象

建议您阅读源代码,以扩展其中的任何一个。那里的文件很少。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42280384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档