[erlang-questions] about erlang eprof tool. Why is the handle_info and handle_cast without in the result
Ahmed Omar
spawn.think@REDACTED
Wed May 18 12:05:08 CEST 2011
Sending a message (handled by handle_info) or doing a cast (handled by
handle_cast) are both async.
You are stopping the profiler too early.
Changing the order to do the async operations first, then the sync one
should assure that all the requests have been handled before you stop eprof
On Wed, May 18, 2011 at 10:57 AM, 郎咸武 <langxianzhe@REDACTED> wrote:
> hi everybody:
> I write a test 'chat' code with eprof.
> I have found the handle_info and handle_cast functions without in the
> anaylise result.
> Why ?
>
> thanks
> Regards
> jason
>
> 1 -module(chat).
>
>
> 2 -compile(export_all).
> 3 %-behaviour(gen_server).
> 4 start(N) ->
> 5 start_link(),
> 6 eprof:start(),
> 7 eprof:start_profiling([chat]),
> 8 test(N),
> 9 testcast(),
> 10 test(),
> 11 eprof:stop_profiling(),
> 12 eprof:log(chat),
> 13 eprof:analyse(),
> 14 eprof:total_analyse().
> 15
> 16 test(N)->
> 17 gen_server:call(?MODULE, {test,N}).
> 18 test()->
> 19 chat ! {test,1}.
> 20 testcast() ->
> 21 gen_server:cast(?MODULE,castttt).
> 22
> 23 start_link() ->
> 24 gen_server:start_link({local,?MODULE},?MODULE,[],[]).
> 25
> 26 init([]) ->
> 27 {ok, {}}.
> 28
> 29 handle_cast(Msg,State) ->
> 30 tttt(),
> 31 io:format("cast=~p~n",[Msg]),
> 32 {noreply,State}.
> 33
> 34 handle_call({test,Number},From, State) when is_number(Number) ->
> 35 Reply = Number+1,
> 36 {reply, Reply,State};
> 37
> 38 handle_call(_,From, State) ->
> 39 Reply = numerror,
> 40 {reply, Reply,State}.
> 41 handle_info(Ino,State) ->
> 42 tttt(),
> 43 io:format("info=~p~n",[Ino]),
> 44 {noreply,State}.
> 45 tttt() ->
> 46 ok.
> %%%%%%%%%%%%%%%%%
> Test result
> 5> chat:start(1).
> eprof: Starting profiling .....
> eprof: Stop profiling
> cast=castttt
> info={test,1}
> FUNCTION CALLS TIME
>
> ****** Process <0.35.0> -- 100 % of profiled time ***
> gen_server:loop/6 1 30 %
> gen_server:handle_msg/5 1 28 %
> chat:handle_call/3 1 21 %
> gen_server:reply/2 1 14 %
> gen_server:decode_msg/8 1 8 %
>
> Total time: 0.00
> Measurement overhead: 0.00
> FUNCTION CALLS TIME
> gen_server:loop/6 1 30 %
> gen_server:handle_msg/5 1 28 %
> chat:handle_call/3 1 21 %
> gen_server:reply/2 1 14 %
> gen_server:decode_msg/8 1 8 %
>
> Total time: 0.00
> Measurement overhead: 0.00
> ok
> 6>
>
>
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions
>
>
--
Best Regards,
- Ahmed Omar
http://nl.linkedin.com/in/adiaa
Follow me on twitter
@spawn_think <http://twitter.com/#!/spawn_think>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20110518/9fa5525d/attachment.htm>
More information about the erlang-questions
mailing list