Class: Rspeckled::Ruby::DeferredGarbageCollection
- Inherits:
-
Object
- Object
- Rspeckled::Ruby::DeferredGarbageCollection
- Defined in:
- lib/rspeckled/plugins/extensions/ruby/deferred_garbage_collection.rb
Constant Summary collapse
- THRESHOLD =
(ENV['DEFER_GC'] || 20.0).to_f
Class Attribute Summary collapse
Class Method Summary collapse
- .cycle_garbage_collector ⇒ Object
- .enabled? ⇒ Boolean
- .over_deferrment_threshold? ⇒ Boolean
- .reconsider ⇒ Object
- .start ⇒ Object
- .time_since_garbage_last_collected ⇒ Object
Class Attribute Details
.garbage_last_collected_at ⇒ Object
43 44 45 |
# 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 |
Class Method Details
.cycle_garbage_collector ⇒ Object
25 26 27 28 29 |
# 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? ⇒ Boolean
35 36 37 |
# File 'lib/rspeckled/plugins/extensions/ruby/deferred_garbage_collection.rb', line 35 def self.enabled? THRESHOLD.positive? end |
.over_deferrment_threshold? ⇒ Boolean
31 32 33 |
# 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 ⇒ Object
17 18 19 20 21 22 23 |
# 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 ⇒ Object
13 14 15 |
# 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 ⇒ Object
39 40 41 |
# 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 |