Class: Splinter::DeferredGarbageCollection

Inherits:
Object
  • Object
show all
Defined in:
lib/splinter/perf/deferred_garbage_collection.rb

Overview

Speed up specs by tweaking garbage collection

See:

https://signalvnoise.com/posts/2742-the-road-to-faster-tests and
https://makandracards.com/makandra/950-speed-up-rspec-by-deferring-garbage-collection

Constant Summary collapse

DEFERRED_GC_THRESHOLD =
(ENV['DEFER_GC'] || 10.0).to_f
@@last_gc_run =
Time.now

Class Method Summary collapse

Class Method Details

.reconsiderObject



17
18
19
20
21
22
23
24
# File 'lib/splinter/perf/deferred_garbage_collection.rb', line 17

def self.reconsider
  if DEFERRED_GC_THRESHOLD > 0 && Time.now - @@last_gc_run >= DEFERRED_GC_THRESHOLD
    GC.enable
    GC.start
    GC.disable
    @@last_gc_run = Time.now
  end
end

.startObject



13
14
15
# File 'lib/splinter/perf/deferred_garbage_collection.rb', line 13

def self.start
  GC.disable if DEFERRED_GC_THRESHOLD > 0
end