瀏覽代碼

xiugai

master
AiCells 4 年之前
父節點
當前提交
654bbed5f3
共有 6 個文件被更改,包括 51 次插入55 次删除
  1. +0
    -10
      src/gen_srv.erl
  2. +8
    -7
      test/ping1.erl
  3. +38
    -7
      test/ping2.erl
  4. +0
    -29
      test/ping3.erl
  5. +1
    -1
      test/pong1.erl
  6. +4
    -1
      test/pong2.erl

+ 0
- 10
src/gen_srv.erl 查看文件

@ -454,11 +454,6 @@ cast({via, RegMod, Name}, Msg) ->
ok
catch _:_ -> ok
end;
cast({Name, Node} = Dest, Msg) when is_atom(Name), is_atom(Node) ->
try erlang:send(Dest, {'$gen_cast', Msg}),
ok
catch _:_ -> ok
end;
cast(Dest, Msg) ->
try erlang:send(Dest, {'$gen_cast', Msg}),
ok
@ -476,11 +471,6 @@ send({via, RegMod, Name}, Msg) ->
ok
catch _:_ -> ok
end;
send({Name, Node} = Dest, Msg) when is_atom(Name), is_atom(Node) ->
try erlang:send(Dest, Msg),
ok
catch _:_ -> ok
end;
send(Dest, Msg) ->
try erlang:send(Dest, Msg),
ok

+ 8
- 7
test/ping1.erl 查看文件

@ -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).

+ 38
- 7
test/ping2.erl 查看文件

@ -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).

+ 0
- 29
test/ping3.erl 查看文件

@ -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).

+ 1
- 1
test/pong1.erl 查看文件

@ -2,7 +2,7 @@
-behavior(gen_server).
-compile([export_all]).
-compile([export_all, nowarn_export_all]).
start() ->
gen_server:start(?MODULE, 0, []).

+ 4
- 1
test/pong2.erl 查看文件

@ -2,7 +2,7 @@
-behavior(gen_srv).
-compile([export_all]).
-compile([export_all, nowarn_export_all]).
start() ->
gen_srv:start(?MODULE, 0, []).
@ -14,4 +14,7 @@ handleCall(ping, _State, _From) ->
{reply, pong}.
handleCast(_Msg, State) ->
{noreply, State}.
handleInfo(_Msg, State) ->
{noreply, State}.

Loading…
取消
儲存