4

Rails アプリでメモリ リークをデバッグしようとしており、ObjectSpace#trace_object_allocationsを使用して既存のオブジェクトのダンプを取得しようとしています。

出力をよりよく理解するには、出力 JSON 行の意味を完全に理解する必要があると思います。

{
   "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
    • 収集不能
    • マークされた
4

1 に答える 1