The GCTrack extension lets you monitor incremental Garbage Collector (GC) information, the GC introduced in Ruby v2.2.
#1 Add the dependency
GCTrack is published to rubygems.org.
Simply add it as a dependency to your
gem 'gctrack', '~> 0.1.0'
#2 Enable the extension
require 'gctrack' ::. # returns true, if the Tracker is now enabled
#3 Record data
::. # returns true, if a new record was started # DO ACTUAL WORK gc_cycles, gc_duration_ns = ::.
#end_record will return the
gc_cycles (the amount of gc cycles observed) and
gc_duration_ns (their cumulative duration in
nanoseconds), since the last invocation of
#start_record. You can also invoke
#start_record recursively as so:
::. # Start a first record do_work_on(one) ::. # Start a second record do_work_on(two) inner_data = ::. # Collect results from second record do_work_on(three) outter_data = ::. # Collect results from first record
In this example, the Array
inner_data will only contain the GC information resulted of executing
outter_data will contain the GC information resulted from the three exectutions:
Effectively, records are stacked and data from a GC cycle will be added to all "currently" records.