@ -0,0 +1,16 @@ | |||||
-module(ping1). | |||||
-compile([export_all]). | |||||
ping(N) -> | |||||
{ok, Pid} = pong1:start(), | |||||
StartTime = erlang:system_time(nanosecond), | |||||
doPing(N, Pid, StartTime). | |||||
doPing(0, _Pid, StartTime) -> | |||||
EndTime = erlang:system_time(nanosecond), | |||||
io:format("ping1 over use time: ~p ns~n",[EndTime - StartTime]); | |||||
doPing(N, Pid, StartTime) -> | |||||
gen_server:call(Pid, ping), | |||||
doPing(N - 1, Pid, StartTime). | |||||
@ -0,0 +1,15 @@ | |||||
-module(ping2). | |||||
-compile([export_all]). | |||||
ping(N) -> | |||||
{ok, Pid} = pong2:start(), | |||||
StartTime = erlang:system_time(nanosecond), | |||||
doPing(N, Pid, StartTime). | |||||
doPing(0, _Pid, StartTime) -> | |||||
EndTime = erlang:system_time(nanosecond), | |||||
io:format("ping2 over use time: ~p ns~n",[EndTime - StartTime]); | |||||
doPing(N, Pid, StartTime) -> | |||||
gen_srv:call(Pid, ping), | |||||
doPing(N - 1, Pid, StartTime). |
@ -0,0 +1,29 @@ | |||||
-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). |
@ -0,0 +1,17 @@ | |||||
-module(pong1). | |||||
-behavior(gen_server). | |||||
-compile([export_all]). | |||||
start() -> | |||||
gen_server:start(?MODULE, 0, []). | |||||
init(_Args) -> | |||||
{ok, 0}. | |||||
handle_call(ping, _From, State) -> | |||||
{reply, pong, State}. | |||||
handle_cast(_Msg, State) -> | |||||
{noreply, State}. |
@ -0,0 +1,17 @@ | |||||
-module(pong2). | |||||
-behavior(gen_srv). | |||||
-compile([export_all]). | |||||
start() -> | |||||
gen_srv:start(?MODULE, 0, []). | |||||
init(_Args) -> | |||||
{ok, 0}. | |||||
handleCall(ping, _State, _From) -> | |||||
{reply, pong}. | |||||
handleCast(_Msg, State) -> | |||||
{noreply, State}. |