他のモジュールからの指示を受け取り、受け取った指示に応じてアクションを実行するサーバーを作成する必要があります。効率が私の主な関心事です。だから私は自分のサーバーを使うgen_server
のか、それとも自分のサーバーを書くのか。「自分のサーバー」とは、次のような意味です。
-module(myserver).
-export([start/0, loop/0]).
start() ->
spawn(myserver, loop, []).
loop() ->
receive
{From, Msg} -> %Do some action here... ;
message2 -> %Do some action here...;
message3 -> %Do some action here...;
message4 -> %Do some action here...;
.
.
.
_-> ok
end,
loop().
したがって、を使用するmyserver
には、プロセスの開始時に登録済みの名前でプロセスを登録し、各クライアントがこのpidを使用してサーバーにメッセージを送信します。
したがって、このメソッドを使用する必要がありますか、それとも代わりにgen_server
動作を使用してサーバーを実装する必要がありますか?使用することに何か利点はありますgen_server
か?しかし、使用gen_server
すると、比較するとオーバーヘッドが追加されmyserver
ますか?