Ruby 3.4 リファレンスマニュアル

singleton method GC::Profiler.raw_data

raw_data -> [Hash, ...] | nilRuby 2.0.0 から[permalink][rdoc][edit]

GC のプロファイル情報を GC の発生ごとに Hash の配列 (:GC_INVOKE_TIME が早いもの順)で返します。GC::Profiler が有効になっていない場合は nil を返します。

例
GC::Profiler.enable
GC.start
GC::Profiler.raw_data
# => [
  {
     GC_TIME: 1.3000000000000858e-05,
     GC_INVOKE_TIME: 0.010634999999999999,
     HEAP_USE_SIZE: 289640,
     HEAP_TOTAL_SIZE: 588960,
     HEAP_TOTAL_OBJECTS: 14724,
     GC_IS_MARKED: false
  },
  # ...
]

各項目の意味を以下に示します。

:GC_TIME

GC の処理時間(秒)

:GC_INVOKE_TIME

Ruby が起動してから GC が起動するまでに経過した時間(秒)

:HEAP_USE_SIZE

ヒープ内での使用サイズ(バイト)

:HEAP_TOTAL_SIZE

ヒープ全体のサイズ(バイト)

:HEAP_TOTAL_OBJECTS

ヒープ内に存在するオブジェクトの個数

:GC_IS_MARKED

GC がマークフェイズかどうか

また、GC_PROFILE_MORE_DETAIL を有効にして Ruby をビルドした場合、以下のキーも参照できます。

  • :GC_MARK_TIME
  • :GC_SWEEP_TIME
  • :ALLOCATE_INCREASE
  • :ALLOCATE_LIMIT
  • :HEAP_USE_SLOTS
  • :HEAP_LIVE_OBJECTS
  • :HEAP_FREE_OBJECTS
  • :HAVE_FINALIZE

[SEE_ALSO] GC::Profiler.report, GC::Profiler.result