@ -1,16 +1,17 @@ | |||||
-module(ping1). | -module(ping1). | ||||
-compile([export_all]). | |||||
-compile([export_all, nowarn_export_all]). | |||||
ping(N) -> | |||||
call(N) -> | |||||
{ok, Pid} = pong1:start(), | {ok, Pid} = pong1:start(), | ||||
StartTime = erlang:system_time(nanosecond), | 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), | 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), | gen_server:call(Pid, ping), | ||||
doPing(N - 1, Pid, StartTime). | |||||
doCall(N - 1, Pid, StartTime). | |||||
@ -1,15 +1,46 @@ | |||||
-module(ping2). | -module(ping2). | ||||
-compile([export_all]). | |||||
-compile([export_all, nowarn_export_all]). | |||||
ping(N) -> | |||||
call(N) -> | |||||
{ok, Pid} = pong2:start(), | {ok, Pid} = pong2:start(), | ||||
StartTime = erlang:system_time(nanosecond), | 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), | 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), | 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). |