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 27
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 37
def self.enabled?
  THRESHOLD > 0
end
garbage_last_collected_at() click to toggle source
# File lib/rspeckled/plugins/extensions/ruby/deferred_garbage_collection.rb, line 45
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 33
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 19
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 15
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 41
def self.time_since_garbage_last_collected
  ::Time.now - garbage_last_collected_at
end