heapy(1)
"heapy " - CLI for analyzing Ruby Heap dumps
Description
HEAPY
NAME
heapy - CLI for analyzing Ruby Heap dumps
SYNOPSIS
heapy read [file|command] [number|all]
DESCRIPTION
heapy is a CLI for analyzing Heap dumps in Ruby. Start analyzing heap dumps of a command or files by:
|
$ heapy read [file|command] |
||
|
Dumps from Ruby command can be analyzed by, |
||
|
$ heapy read <command> |
||
|
Heap dumps from files can also be analayzed, |
||
|
$ heapy read file.dump |
Generation: nil
object count: 209191
Generation: 18 object count: 805
|
NOTE: The reason of getting a "nil" generation is these objects were loaded into memory before your code began tracking the allocations. To ensure all allocations are tracked one should execute the ruby script this trick. |
First create a file trace.rb that only starts allocation tracing:
|
require ’objspace’ |
ObjectSpace.trace_object_allocations_start
|
Now make sure this command is loaded before running the script, use Ruby’s -I to specify a load path and -r to specify a library to require, in this case the trace file, | |
|
$ ruby -I ./ -r trace script_name.rb | |
|
If the last line of file is invalid JSON, make sure that file is closed file after writing the ruby heap dump to it. |
To analyze a specific generation, pass the generation number along with the command. For example, to analyze 17th generation in file.dump,
|
$ heapy read file.dump 17 |
||
|
To get all generations pass "all" directive |
||
|
$ heapy read file.dump all |
AUTHORS
Heapy was written by Richard Schneeman. Initial code and idea was developed by Sam Saffron.