I am currently investigating a performance issue within a large Erlang application. The application exhibits larger-than-expected CPU load. To get a first grasp which parts of the system are responsible for the load, I'd like to perform callstack sampling as described in this answer.
Is there a better way to do this than calling erlang:process_info(Pid, backtrace)
repeatedly and grepping the functions from that output?
Note that the system is too large to use fprof
, and that etop
did not point me into the right direction as well. Using fprof
for only parts of the system is not possible right now as well, as I first need to pin-point the general location of the performance issue.