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.