Sha256: 7977230643576cc59192203a758f3310b401b6da0e86b7124a359ecd7841c75a
Contents?: true
Size: 1.02 KB
Versions: 2
Compression:
Stored size: 1.02 KB
Contents
# frozen_string_literal: true ### # Shamelessly stolen from http://ariejan.net/2011/09/24/rspec-speed-up-by-tweaking-ruby-garbage-collection/ # module Rspeckled module Ruby class DeferredGarbageCollection THRESHOLD = (ENV['DEFER_GC'] || 20.0).to_f private_constant :THRESHOLD @garbage_last_collected_at = nil def self.start cycle_garbage_collector if enabled? end def self.reconsider return unless enabled? && over_deferrment_threshold? cycle_garbage_collector self.garbage_last_collected_at = ::Time.now end def self.cycle_garbage_collector ::GC.enable ::GC.start ::GC.disable end def self.over_deferrment_threshold? time_since_garbage_last_collected >= THRESHOLD end def self.enabled? THRESHOLD > 0 end def self.time_since_garbage_last_collected ::Time.now - garbage_last_collected_at end def self.garbage_last_collected_at @garbage_last_collected_at || ::Time.now end class << self attr_writer :garbage_last_collected_at end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
rspeckled-2.1.1 | lib/rspeckled/plugins/extensions/ruby/deferred_garbage_collection.rb |
rspeckled-2.1.0 | lib/rspeckled/plugins/extensions/ruby/deferred_garbage_collection.rb |