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