|
|
|
@ -35,11 +35,26 @@ s:bind(bind_to)
|
|
|
|
|
|
|
|
|
|
|
|
local msg = zmq.zmq_msg_t()
|
|
|
|
local msg = zmq.zmq_msg_t()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
local timer
|
|
|
|
|
|
|
|
|
|
|
|
for i = 1, roundtrip_count do
|
|
|
|
for i = 1, roundtrip_count do
|
|
|
|
assert(s:recv_msg(msg))
|
|
|
|
assert(s:recv_msg(msg))
|
|
|
|
|
|
|
|
if not timer then
|
|
|
|
|
|
|
|
timer = zmq.stopwatch_start()
|
|
|
|
|
|
|
|
end
|
|
|
|
assert(msg:size() == message_size, "Invalid message size")
|
|
|
|
assert(msg:size() == message_size, "Invalid message size")
|
|
|
|
assert(s:send_msg(msg))
|
|
|
|
assert(s:send_msg(msg))
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
local elapsed = timer:stop()
|
|
|
|
|
|
|
|
|
|
|
|
s:close()
|
|
|
|
s:close()
|
|
|
|
ctx:term()
|
|
|
|
ctx:term()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
local latency = elapsed / roundtrip_count / 2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
print(string.format("mean latency: %.3f [us]", latency))
|
|
|
|
|
|
|
|
local secs = elapsed / (1000 * 1000)
|
|
|
|
|
|
|
|
print(string.format("elapsed = %f", secs))
|
|
|
|
|
|
|
|
print(string.format("msg/sec = %f", roundtrip_count / secs))
|
|
|
|
|
|
|
|
|
|
|
|
|