Skip to content

yunba/yberpc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

91 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

yberpc

Erlang RPC 库。

API

start_server(Url, Handler)

启动 RPC 服务器。Url 为监听地址,Handler 为处理收到数据的进程 PID,返回值为一个 PID

start_client(Url, Handler)

启动 RPC 客户端。Url 为连接地址,Handler 为处理收到数据的进程 PID,返回值为一个 PID

rpc_req(Pid, ReqData)

请求 RPC 调用。PIDstart_client 返回的 PIDReqData 为请求数据。

rpc_rep(Pid, RepData)

响应 RPC 调用。PIDstart_server 返回的 PIDRepData 为响应数据。

stop_server(Pid)

停止 RPC 服务器。PIDstart_server 返回的 PID

stop_client(Pid)

停止 RPC 客户端。PIDstart_client 返回的 PID

Benchmark

测试环境:

  • OS: ubuntu 16.04 64-bit
  • CPU: Intel(R) Core(TM) i7-6500U CPU @ 2.50GHz * 4
  • Memory: 12G
  • RPC 服务器和客户端都在此机器上

不同数据大小的 RPC 请求次数与耗时对应如下(ms 表示毫秒):

data: 1024 bytes:

count: 50000, time: 1753.242 ms
count: 100000, time: 3554.872 ms

data: 4096 bytes:

count: 50000, time: 1804.299 ms
count: 100000, time: 3692.052 ms

data: 16384 bytes:

count: 50000, time: 2003.51 ms
count: 100000, time: 3933.991 ms