erlang_pmp
Poor Man's Profiler inspired Erlang profiler.
Running
erlang_pmp:profile(Opts).
Opts
-
duration
: duration the profiling will run for, in seconds (default:60
). -
processes
: list of PIDs that will be profiled, orall
to useerlang:processes()
before taking each sample (default:all
). -
sleep
: sleep duration in milliseconds between taking samples (default:10
). -
show_pid
: iftrue
, PID (or process name if registered) will be prepended to the stack trace (default:false
). -
filename
: path under which the profiling results will be saved (default:/tmp/erlang_pmp.trace
). -
include_statuses
: a list of process statuses as returned fromerlang:process_info(Pid, status)
. A stack trace will only be counted if the process status belongs to the list, or ifinclude_statuses
isall
(default:all
). -
show_status
: iftrue
, status of the process will be appended to the stack trace (default:false
)
Output
The output of erlang_pmp
is meant to be used with FlameGraph stack trace visualizer:
git clone https://github.com/brendangregg/FlameGraph.git
FlameGraph/flamegraph.pl /tmp/erlang_pmp.trace > /tmp/erlang_pmp.svg