[zeromq-dev] Too much ZeroMQ overhead versus plain TCP Java NIO Epoll (with measurements)

Chuck Remes lists at chuckremes.com
Wed Aug 29 17:24:06 CEST 2012

On Aug 29, 2012, at 10:13 AM, Julie Anderson wrote:

> Just tested ZeroMQ and Java NIO in the same machine.
> The results:
> - ZeroMQ:
> message size: 13 [B]
> roundtrip count: 100000
> average latency: 19.620 [us] <====== ONE-WAY LATENCY
> - Java NIO Selector: (EPoll)
> Average RTT (round-trip time) latency of a 13-byte message: 15.342 [us]
> Min Time: 11.664 [us]
> 99.999% percentile: 15.340 [us] <====== RTT LATENCY
> Conclusion: That's 39.240 versus 15.340 so ZeroMQ overhead on top of TCP is 156% or 23.900 nanoseconds !!! That's excessive. I would expect 1 or 2 microseconds there.
> So my questions are: 
> 1) What does ZeroMQ do under the rood that justifies so many extra clock cycles? (I am really curious to know)
> 2) Do people agree that 23 microseconds are just too much?

As a favor to me, please rerun the tests so that at least 1 million (10 million is better) messages are sent. This shouldn't take more than a few minutes to run. Thanks.

Secondly, are you using the local_lat and remote_lat programs that are included with zeromq or did you write your own? If you wrote your own, please share the code.

Thirdly, a pastie containing the code for both tests so others could independently reproduce your results would be very handy.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20120829/233d0daf/attachment.htm>

More information about the zeromq-dev mailing list