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, orallto 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_statusesisall(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