@ -1,16 +1,17 @@ | |||
-module(ping1). | |||
-compile([export_all]). | |||
-compile([export_all, nowarn_export_all]). | |||
ping(N) -> | |||
call(N) -> | |||
{ok, Pid} = pong1:start(), | |||
StartTime = erlang:system_time(nanosecond), | |||
doPing(N, Pid, StartTime). | |||
doCall(N, Pid, StartTime). | |||
doPing(0, _Pid, StartTime) -> | |||
doCall(0, Pid, StartTime) -> | |||
EndTime = erlang:system_time(nanosecond), | |||
io:format("ping1 over use time: ~p ns~n",[EndTime - StartTime]); | |||
doPing(N, Pid, StartTime) -> | |||
exit(Pid, kill), | |||
io:format("call1 over use time: ~p ns~n",[EndTime - StartTime]); | |||
doCall(N, Pid, StartTime) -> | |||
gen_server:call(Pid, ping), | |||
doPing(N - 1, Pid, StartTime). | |||
doCall(N - 1, Pid, StartTime). | |||
@ -1,15 +1,46 @@ | |||
-module(ping2). | |||
-compile([export_all]). | |||
-compile([export_all, nowarn_export_all]). | |||
ping(N) -> | |||
call(N) -> | |||
{ok, Pid} = pong2:start(), | |||
StartTime = erlang:system_time(nanosecond), | |||
doPing(N, Pid, StartTime). | |||
doCall(N, Pid, StartTime). | |||
doPing(0, _Pid, StartTime) -> | |||
doCall(0, Pid, StartTime) -> | |||
EndTime = erlang:system_time(nanosecond), | |||
io:format("ping2 over use time: ~p ns~n",[EndTime - StartTime]); | |||
doPing(N, Pid, StartTime) -> | |||
exit(Pid, kill), | |||
io:format("call2 over use time: ~p ns~n",[EndTime - StartTime]); | |||
doCall(N, Pid, StartTime) -> | |||
gen_srv:call(Pid, ping), | |||
doPing(N - 1, Pid, StartTime). | |||
doCall(N - 1, Pid, StartTime). | |||
send(N) -> | |||
{ok, Pid} = pong2:start(), | |||
StartTime = erlang:system_time(nanosecond), | |||
doSend(N, Pid, StartTime). | |||
doSend(0, Pid, StartTime) -> | |||
% Ret = gen_srv:call(Pid, ping), | |||
Ret = 1, | |||
EndTime = erlang:system_time(nanosecond), | |||
exit(Pid, kill), | |||
io:format("send2 over use time: ~p ~p ns~n",[Ret, EndTime - StartTime]); | |||
doSend(N, Pid, StartTime) -> | |||
gen_srv:send(Pid, ping), | |||
doSend(N - 1, Pid, StartTime). | |||
cast(N) -> | |||
{ok, Pid} = pong2:start(), | |||
StartTime = erlang:system_time(nanosecond), | |||
doCast(N, Pid, StartTime). | |||
doCast(0, Pid, StartTime) -> | |||
%Ret = gen_srv:call(Pid, ping), | |||
Ret = 1, | |||
EndTime = erlang:system_time(nanosecond), | |||
exit(Pid, kill), | |||
io:format("cast2 over use time: ~p ~p ns~n",[Ret, EndTime - StartTime]); | |||
doCast(N, Pid, StartTime) -> | |||
gen_srv:cast(Pid, ping), | |||
doCast(N - 1, Pid, StartTime). |
@ -1,29 +0,0 @@ | |||
-module(ping3). | |||
-compile([export_all]). | |||
send(N) -> | |||
{ok, Pid} = pong2:start(), | |||
StartTime = erlang:system_time(nanosecond), | |||
doSend(N, Pid, StartTime). | |||
doSend(0, Pid, StartTime) -> | |||
Ret = gen_srv:call(Pid, ping), | |||
EndTime = erlang:system_time(nanosecond), | |||
io:format("ping2 over use time: ~p ~p ns~n",[Ret, EndTime - StartTime]); | |||
doSend(N, Pid, StartTime) -> | |||
gen_srv:send(Pid, ping), | |||
doSend(N - 1, Pid, StartTime). | |||
cast(N) -> | |||
{ok, Pid} = pong2:start(), | |||
StartTime = erlang:system_time(nanosecond), | |||
doCast(N, Pid, StartTime). | |||
doCast(0, Pid, StartTime) -> | |||
Ret = gen_srv:call(Pid, ping), | |||
EndTime = erlang:system_time(nanosecond), | |||
io:format("ping2 over use time: ~p ~p ns~n",[Ret, EndTime - StartTime]); | |||
doCast(N, Pid, StartTime) -> | |||
gen_srv:cast(Pid, ping), | |||
doCast(N - 1, Pid, StartTime). |