singleton method GC::Profiler.raw_data

raw_data -> [Hash, ...] | nil[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