Module: ObjectSpace

Defined in:
lib/madvertise/ext/object_space.rb

Class Method Summary collapse

Class Method Details

.memory_stats(*args) ⇒ Object



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/madvertise/ext/object_space.rb', line 32

def self.memory_stats(*args)
  stats = {}

  self.each_object do |obj|
    stats[obj.class] ||= []
    stats[obj.class] << Memory.size(obj)
  end

  stats.map do |cls, sizes|
    cnt = sizes.length
    sum = sizes.reduce(:+)
    avg = sum / cnt
    [cls, [cnt, avg, sum]]
  end.sort_by do |cls, sizes|
    sizes[2]
  end.reverse
end