Difference between revisions of "Profiling"
From Notes_Wiki
| m | m | ||
| (One intermediate revision by the same user not shown) | |||
| Line 1: | Line 1: | ||
| [[Main_Page|Home]] > [[Erlang]] > [[Profiling]] | |||
| ==Function call time profiling== | ==Function call time profiling== | ||
| To profile Erlang programs for function call time use: | To profile Erlang programs for function call time use: | ||
| <pre> | <pre> | ||
| 1>  | 1> fprof:apply(fun mod:name/arity, [Args]). | ||
| 2>  | 2> fprof:profile(). | ||
| 3>  | 3> fprof:analyse(). | ||
| </pre> | </pre> | ||
| This is useful for sequential programs so that time taken by each function can be compared. | This is useful for sequential programs so that time taken by each function can be compared. | ||
| Line 24: | Line 23: | ||
| Use "<tt>erl -man fprof</tt>" and see analysis example at end of man page for more details. | Use "<tt>erl -man fprof</tt>" and see analysis example at end of man page for more details. | ||
| [[Main_Page|Home]] > [[Erlang]] > [[Profiling]] | |||
Latest revision as of 13:45, 7 April 2022
Function call time profiling
To profile Erlang programs for function call time use:
1> fprof:apply(fun mod:name/arity, [Args]). 2> fprof:profile(). 3> fprof:analyse().
This is useful for sequential programs so that time taken by each function can be compared.
Concurrency profiling
To profile Erlang programs for concurrency use:
1> percept:profile("test.dat", {Mod, Fun, Args_list}, [procs]).
2> percept:analyze("test.dat").
3> percept:start_webserver(8888).
and then open http://localhost:8888/ to see the concurrency profile with number of processes spawned and runnable time for each process. For more information refer to percept app tutorial at http://www.erlang.org/doc/apps/percept/percept.pdf
Use "erl -man fprof" and see analysis example at end of man page for more details.

