Basic memory profiling
1 2 s = Hash.new(0); 3 ObjectSpace.each_object do |o| 4 s[o.class] += Marshal.dump(o).size rescue 0 5 end 6 7 w = s.keys.map{|v|v.to_s.length}.max 8 puts s.to_a.sort{|a,b|b[1]<=>a[1]}.map{|k,v|"%#{w}s %d"%[k,v]}.join("\n") 9 puts "#{' ' * w} #{s.to_a.inject(0){|n,a| n += a[1]}}"