class Rspeckled::Ruby::DeferredGarbageCollection

Constants

THRESHOLD

Attributes

garbage_last_collected_at[W]

Public Class Methods

cycle_garbage_collector() click to toggle source
# File lib/rspeckled/plugins/extensions/ruby/deferred_garbage_collection.rb, line 25
def self.cycle_garbage_collector
  ::GC.enable
  ::GC.start
  ::GC.disable
end
enabled?() click to toggle source
# File lib/rspeckled/plugins/extensions/ruby/deferred_garbage_collection.rb, line 35
def self.enabled?
  THRESHOLD.positive?
end
garbage_last_collected_at() click to toggle source
# File lib/rspeckled/plugins/extensions/ruby/deferred_garbage_collection.rb, line 43
def self.garbage_last_collected_at
  @garbage_last_collected_at || ::Time.now
end
over_deferrment_threshold?() click to toggle source
# File lib/rspeckled/plugins/extensions/ruby/deferred_garbage_collection.rb, line 31
def self.over_deferrment_threshold?
  time_since_garbage_last_collected >= THRESHOLD
end
reconsider() click to toggle source
# File lib/rspeckled/plugins/extensions/ruby/deferred_garbage_collection.rb, line 17
def self.reconsider
  return unless enabled? && over_deferrment_threshold?

  cycle_garbage_collector

  self.garbage_last_collected_at = ::Time.now
end
start() click to toggle source
# File lib/rspeckled/plugins/extensions/ruby/deferred_garbage_collection.rb, line 13
def self.start
  cycle_garbage_collector if enabled?
end
time_since_garbage_last_collected() click to toggle source
# File lib/rspeckled/plugins/extensions/ruby/deferred_garbage_collection.rb, line 39
def self.time_since_garbage_last_collected
  ::Time.now - garbage_last_collected_at
end