reductions galore

Anthony Shipman <>
Wed Feb 24 11:45:01 CET 2010


Here is some code from experimenting with profiling.

run() ->
    Keys = lists:seq(1, 2000),

    Child = spawn(fun() -> receive after 5000 -> ok end end),
    %Child = spawn(fun() -> receive _ -> ok end end),


    {reductions,R1} = process_info(self(), reductions),
    lists:foreach(fun(K) -> Child!K end, Keys),
    {reductions,R2} = process_info(self(), reductions),

    io:format("reductions ~p~n", [R2 - R1]),
    ok.


It prints
	reductions 3344538

If I change the child process to the second one with the receive X I get
	reductions 6334

In the first case messages are queuing in the child process. But can the 
reduction count be real?

-- 
Anthony Shipman                    Mamas don't let your babies 
                   grow up to be outsourced.


More information about the erlang-questions mailing list