How to determine the rough size (heaviness) of an object in Ruby
Let’s say you are trying to find ways to reduce application memory and want to do a rough audit of object sizes in your application to see if there are any bloated objects that can be divided into smaller objects for a more performant application. How do you go about this?
The means I’ve found is through the use of the objspace
library. An example use of this library:
require 'objspace'
ObjectSpace::trace_object_allocations{
org = Organization.last
puts ObjectSpace::memsize_of(org)
}
The example above first requires the library and then prints the size of the Ruby object in bytes.
Note that this is an approximation and the ObjectSpace documentation recommends you be familiar with your MRI implementation before using this library.