Method: Object#memory_size
- Defined in:
- lib/coaster/core_ext/memory_size.rb
#memory_size(depth: 2, object_ids: []) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/coaster/core_ext/memory_size.rb', line 4 def memory_size(depth: 2, object_ids: []) res = {nil => ObjectSpace.memsize_of(self)} instance_variables.each do |var| iv = instance_variable_get(var) if object_ids.include?(iv.object_id) res[var] = nil else object_ids << iv.object_id if depth > 0 res[var] = iv.memory_size(depth: depth - 1, object_ids:) else res[var] = iv.memory_size_total(object_ids:) end end end res end |