FreeBSD Manual Pages
eprof(3) Erlang Module Definition eprof(3) NAME eprof - A Time Profiling Tool for Erlang DESCRIPTION The module eprof provides a set of functions for time profiling of Er- lang programs to find out how the execution time is used. The profiling is done using the Erlang trace BIFs. Tracing of local function calls for a specified set of processes is enabled when profiling is begun, and disabled when profiling is stopped. When using Eprof, expect a slowdown in program execution. EXPORTS start() -> {ok,Pid} | {error,Reason} Types: Pid = pid() Reason = {already_started,Pid} Starts the Eprof server which holds the internal state of the collected data. start_profiling(Rootset) -> profiling | {error, Reason} start_profiling(Rootset,Pattern) -> profiling | {error, Reason} start_profiling(Rootset,Pattern,Options) -> profiling | {error, Reason} Types: Rootset = [atom() | pid()] Pattern = {Module, Function, Arity} Module = Function = atom() Arity = integer() Options = [set_on_spawn] Reason = term() Starts profiling for the processes in Rootset (and any new pro- cesses spawned from them). Information about activity in any profiled process is stored in the Eprof database. Rootset is a list of pids and registered names. The function returns profiling if tracing could be enabled for all processes in Rootset, or error otherwise. A pattern can be selected to narrow the profiling. For instance a specific module can be selected, and only the code executed in that module will be profiled. The set_on_spawn option will active call time tracing for all processes spawned by processes in the rootset. This is the de- fault behaviour. stop_profiling() -> profiling_stopped | profiling_already_stopped Stops profiling started with start_profiling/1 or profile/1. profile(Fun) -> profiling | {error, Reason} profile(Fun, Options) -> profiling | {error, Reason} profile(Rootset) -> profiling | {error, Reason} profile(Rootset,Fun) -> {ok, Value} | {error,Reason} profile(Rootset,Fun,Pattern) -> {ok, Value} | {error, Reason} profile(Rootset,Module,Function,Args) -> {ok, Value} | {error, Reason} profile(Rootset,Module,Function,Args,Pattern) -> {ok, Value} | {error, Reason} profile(Rootset,Module,Function,Args,Pattern,Options) -> {ok, Value} | {error, Reason} Types: Rootset = [atom() | pid()] Fun = fun() -> term() end Pattern = {Module, Function, Arity} Module = Function = atom() Args = [term()] Arity = integer() Options = [set_on_spawn] Value = Reason = term() This function first spawns a process P which evaluates Fun() or apply(Module,Function,Args). Then, it starts profiling for P and the processes in Rootset (and any new processes spawned from them). Information about activity in any profiled process is stored in the Eprof database. Rootset is a list of pids and registered names. If tracing could be enabled for P and all processes in Rootset, the function returns {ok,Value} when Fun()/apply returns with the value Value, or {error,Reason} if Fun()/apply fails with exit reason Reason. Otherwise it returns {error, Reason} immedi- ately. The set_on_spawn option will active call time tracing for all processes spawned by processes in the rootset. This is the de- fault behaviour. The programmer must ensure that the function given as argument is truly synchronous and that no work continues after the func- tion has returned a value. analyze() -> ok analyze(Type) -> ok analyze(Type,Options) -> ok Types: Type = procs | total Options = [{filter, Filter} | {sort, Sort} Filter = [{calls, integer()} | {time, float()}] Sort = time | calls | mfa Call this function when profiling has been stopped to display the results per process, that is: * how much time has been used by each process, and * in which function calls this time has been spent. Call analyze with total option when profiling has been stopped to display the results per function call, that is in which func- tion calls the time has been spent. Time is shown as percentage of total time and as absolute time. log(File) -> ok Types: File = atom() | string() This function ensures that the results displayed by ana- lyze/0,1,2 are printed both to the file File and the screen. stop() -> stopped Stops the Eprof server. Ericsson AB tools 3.1 eprof(3)
NAME | DESCRIPTION | EXPORTS
Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=eprof&sektion=3&manpath=FreeBSD+13.0-RELEASE+and+Ports>