memprof © Joe Damato @joedamato timetobleed.com
What is memprof?
Memprof is a memory profiler for Ruby that requires no patches to the Ruby VM. It can help you find Ruby level memory leaks in your application.
Required to install
If you are using the Linux version, you need to install libelf:
apt-get install libelfg0-dev
The experimental OSX version needs no additional libraries.
How to use
require ‘memprof’ Memprof.start
# ruby code
Memprof.stats
# more ruby code
Memprof.stats Memprof.stop
The above code will output 2 summaries, allowing you to compare which objects were destroyed and which are still around.
Memprof.stats also takes an (optional) file name to write the output to a file.
Supported systems
This only works on unstripped binaries.
Currently supporting:
Linux:
x86_64 builds of Ruby Enterprise Edition 1.8.6/1.8.7
x86_64 builds of MRI Ruby (enabled-shared and disable-shared)
Experimental (somewhat broken) support:
Linux:
i386/i686 support.
Snow Leopard:
x86_64 builds of MRI (both enable-shared and disable-shared)
OSX system Ruby, distributed with Snow Leopard
Coming soon:
Official support for Snow Leopard.
Linux:
Tracking object allocationns in C extensions.
CREDITS
Jake Douglas for the Mach O/snow leopard support.
Aman Gupta for various bug fixes and other cleanup.