[erlang-questions] Load testing in parallel
Ahmed Ali
ahmed.nawras@REDACTED
Mon Aug 13 08:40:59 CEST 2007
Hi all,
I've been trying to load test a function in my code. The way I'm doing it is
to generate lists of the data I want to process, start a process for each
list and calculate runtime for each process. The function that I implemented
will call a WebService operation in a different host for each data.
I have the code below for this test. what I do is basically run
load_test(10, 1000) to generate 10 lists, each with 1000 data in it.
The problem is that WebService call is done successfully but I don't get any
output for the statistics. When I run the code sequentially (i.e. instead of
spawn the call to run_process, I call run_process directly) I get the output
with no issues. Is there something that I missed in the code below? I
appreciate your help.
Best regards,
Ahmed Al-Issaei
run_process(Num, Fun, List, _Pid) ->
statistics(wall_clock),
io:format("load testing process~n"),
lists:map(Fun, List),
{_, Time2} = statistics(wall_clock),
U2 = Time2 / 1000,
io:format("Num (~s) done: total time = ~p~n",[Num, U2]).
start(_N, _Op, [], _Pid) ->
true;
start(Num, Op, Final, Pid) ->
[Head | Rest] = Final,
spawn(?MODULE, run_process, [Num, Op, Head, Pid]),
start(Num-1, Op, Rest, Pid).
load_test(Threads, Size) ->
List = generate_lists(Threads, Size, []),
Op = fun(X) -> call_ws_create(X) end,
start(Threads, Op, List, self()).
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20070813/868ef231/attachment.htm>
More information about the erlang-questions
mailing list