Module: GC::Profiler
| Relationships & Source Files | |
| Defined in: | gc.c | 
Overview
The GC profiler provides access to information on ::GC runs including time, length and object space size.
Example:
GC::Profiler.enable
require 'rdoc/rdoc'
GC::Profiler.report
GC::Profiler.disableSee also count, malloc_allocated_size and malloc_allocations
Class Attribute Summary
- 
    
      .enabled?  ⇒ Boolean 
    
    readonly
    The current status of ::GC profile mode. 
Class Method Summary
- 
    
      .clear  ⇒ nil 
    
    Clears the ::GC profiler data. 
- 
    
      .raw_data  ⇒ Array, ... 
    
    Returns an ::Array of individual raw profile data Hashes ordered from earliest to latest by :GC_INVOKE_TIME.
- .report
- 
    
      .result  ⇒ String 
    
    Returns a profile data report such as: 
- 
    
      .total_time  ⇒ Float 
    
    The total time used for garbage collection in seconds. 
Class Attribute Details
    .enabled?  ⇒ Boolean  (readonly)  
The current status of ::GC profile mode.
Class Method Details
    .clear  ⇒ nil   
Clears the ::GC profiler data.
.raw_data ⇒ Array, ...
Returns an ::Array of individual raw profile data Hashes ordered from earliest to latest by :GC_INVOKE_TIME.
For example:
[
  {
     :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
  },
  # ...
]The keys mean:
- :GC_TIME
- 
Time elapsed in seconds for this GC run 
- :GC_INVOKE_TIME
- 
Time elapsed in seconds from startup to when the GC was invoked 
- :HEAP_USE_SIZE
- 
Total bytes of heap used 
- :HEAP_TOTAL_SIZE
- 
Total size of heap in bytes 
- :HEAP_TOTAL_OBJECTS
- 
Total number of objects 
- :GC_IS_MARKED
- 
Returns trueif the GC is in mark phase
If ruby was built with GC_PROFILE_MORE_DETAIL, you will also have access to the following hash keys:
- :GC_MARK_TIME- :GC_SWEEP_TIME- :ALLOCATE_INCREASE- :ALLOCATE_LIMIT- :HEAP_USE_PAGES- :HEAP_LIVE_OBJECTS- :HEAP_FREE_OBJECTS- :HAVE_FINALIZE
    
      .report  
      .report(io)  
    
  
.result ⇒ String
Returns a profile data report such as:
GC 1 invokes.
Index    Invoke Time(sec)       Use Size(byte)     Total Size(byte)         Total Object                    GC time(ms)
    1               0.012               159240               212940                10647         0.00000000000001530000.total_time ⇒ Float
The total time used for garbage collection in seconds