Class: MemoryTracker::GcStat
- Inherits:
-
Object
- Object
- MemoryTracker::GcStat
- Defined in:
- lib/memory_tracker/gc_stat.rb
Instance Attribute Summary collapse
-
#stats ⇒ Object
readonly
Returns the value of attribute stats.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(rss, vsize) ⇒ GcStat
constructor
A new instance of GcStat.
- #ordered_keys ⇒ Object
- #ordered_values ⇒ Object
Constructor Details
#initialize(rss, vsize) ⇒ GcStat
Returns a new instance of GcStat.
5 6 7 |
# File 'lib/memory_tracker/gc_stat.rb', line 5 def initialize(rss, vsize) @stats = GC.stat.merge({ :rss => rss, :vsize => vsize}) end |
Instance Attribute Details
#stats ⇒ Object (readonly)
Returns the value of attribute stats.
3 4 5 |
# File 'lib/memory_tracker/gc_stat.rb', line 3 def stats @stats end |
Class Method Details
.gcdiff(before, after) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/memory_tracker/gc_stat.rb', line 20 def self.gcdiff(before, after) return {} unless (before && before[:total_allocated_object] && before[:total_freed_object]) return {} unless (after && after[:total_allocated_object] && after[:total_freed_object]) diff = {} b = before.clone a = after.clone diff[:num_alloc] = a[:total_allocated_object] - b[:total_allocated_object] diff[:num_heaps] = a[:heap_used] [ a, b ].each do |x| x.delete(:heap_increment) x.delete(:heap_length) x.delete(:heap_final_num) x[:in_use] = x.delete(:total_allocated_object) - x.delete(:total_freed_object) end b.each_key do |key| diff[key] = a[key] - b[key] end diff end |
Instance Method Details
#ordered_keys ⇒ Object
9 10 11 |
# File 'lib/memory_tracker/gc_stat.rb', line 9 def ordered_keys @stats.keys.sort end |
#ordered_values ⇒ Object
13 14 15 16 17 18 |
# File 'lib/memory_tracker/gc_stat.rb', line 13 def ordered_values ordered_keys.inject([]) do |vals, key| vals << @stats[key] vals end end |