[zeromq-dev] User-space polling of ZMQ sockets

Luca Boccassi luca.boccassi at gmail.com
Wed Apr 11 19:46:05 CEST 2018


On Wed, 2018-04-11 at 18:47 +0200, Francesco wrote:
> Hi all,
> 
> I'm using zmq_poller_wait_all() API in one of my threads because I
> need to
> poll over 2 ZMQ sockets.
> I'm receiving a lot of traffic on both these sockets.
> I think the performance of my software is bad and that may be due
> IMHO to
> the huge amount of poll() syscalls that my thread does... I think the
> overhead of doing the system call is what is killing me...
> 
> so my question is: when zmq_poller_wait_all() polls zmq FDs it is
> actually
> polling the real socket FD or rather some ZMQ internal structure?
> If the latter is true, do I have a way to poll more than 1 zmq socket
> without doing a system call?
> 
> 
> THanks,
> Francesco

I'm not familiar with the zmq_poller API so someone else might help -
in general, a common optimisation is to drain the socket using non-
blocking receives when poll wakes up (taking care of using heuristic to
avoid starving the other sockets), so that you can process multiple
messages per poll

-- 
Kind regards,
Luca Boccassi
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: This is a digitally signed message part
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20180411/ed657505/attachment.sig>


More information about the zeromq-dev mailing list