diff options
Diffstat (limited to 'lib/kernel/test/rpc_SUITE.erl')
| -rw-r--r-- | lib/kernel/test/rpc_SUITE.erl | 41 | 
1 files changed, 21 insertions, 20 deletions
diff --git a/lib/kernel/test/rpc_SUITE.erl b/lib/kernel/test/rpc_SUITE.erl index 7adef49014..867b448b36 100644 --- a/lib/kernel/test/rpc_SUITE.erl +++ b/lib/kernel/test/rpc_SUITE.erl @@ -456,32 +456,33 @@ called_throws(Config) when is_list(Config) ->  call_benchmark(Config) when is_list(Config) ->      Timetrap = ?t:timetrap(?t:seconds(120)), -    ?line PA = filename:dirname(code:which(?MODULE)), -    ?line {ok, Node} = ?t:start_node(rpc_SUITE_call_benchmark, slave,  -				     [{args, "-pa " ++ PA}]), +    PA = filename:dirname(code:which(?MODULE)), +    {ok, Node} = ?t:start_node(rpc_SUITE_call_benchmark, slave, +			       [{args, "-pa " ++ PA}]),      Iter = case erlang:system_info(modified_timing_level) of  	       undefined -> 10000; -	       _ -> 500				%Moified timing - spawn is slower +	       _ -> 500		     %Modified timing - spawn is slower  	   end, -    ?line do_call_benchmark(Node, Iter), +    Res = do_call_benchmark(Node, Iter), +    ?t:stop_node(Node),      ?t:timetrap_cancel(Timetrap), -    ok. +    Res.  do_call_benchmark(Node, M) when is_integer(M), M > 0 -> -    do_call_benchmark(Node, erlang:now(), 0, M). - -do_call_benchmark(Node, {A,B,C}, M, M) -> -    ?line {D,E,F} = erlang:now(), -    ?line T = float(D-A)*1000000.0 + float(E-B) + float(F-C)*0.000001, -    ?line Q = 3.0 * float(M) / T, -    ?line ?t:stop_node(Node), -    {comment,  -     lists:flatten([float_to_list(Q)," RPC calls per second"])}; -do_call_benchmark(Node, Then, I, M) -> -    ?line Node = rpc:call(Node, erlang, node, []), -    ?line _ = rpc:call(Node, erlang, whereis, [rex]), -    ?line 3 = rpc:call(Node, erlang, '+', [1,2]), -    ?line do_call_benchmark(Node, Then, I+1, M). +    {Micros,ok} = timer:tc(fun() -> +				   do_call_benchmark(Node, 0, M) +			   end), +    Calls = 3*M, +    S = io_lib:format("~p RPC calls/second", [Calls*1000000 div Micros]), +    {comment,lists:flatten(S)}. + +do_call_benchmark(_Node, M, M) -> +    ok; +do_call_benchmark(Node, I, M) -> +    Node = rpc:call(Node, erlang, node, []), +    _ = rpc:call(Node, erlang, whereis, [rex]), +    3 = rpc:call(Node, erlang, '+', [1,2]), +    do_call_benchmark(Node, I+1, M).  async_call(Config) when is_list(Config) ->      Dog = ?t:timetrap(?t:seconds(120)),  | 
