raw_data -> [Hash, ...] | nilRuby 2.0.0 から[permalink][rdoc][edit]() → Array[Hash[Symbol, untyped]]?-
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