[zeromq-dev] Zero-copy and INPROC transport

Wenzel Jakob wenzel at inf.ethz.ch
Sat Jan 16 17:13:24 CET 2016

Hello all,

I’m interested in using ZeroMQ to build a multithreaded application which uses INPROC transport to propagate messages between threads.

My plan was to send messages using zmq_sendmsg (created using zmq_msg_init_data with a custom deallocator), and to receive messages, I was planning to use zmq_recvmsg.

I’m concerned if INPROC will perform unnecessary copies of messages, which can be very large in my application (i.e. hundreds of megabytes). In principle, it should just be possible to do it without copies by just moving zmq_msg_t* from the inproc socket of one thread to that of the other — however, I am not familiar enough with the implementation of ZeroMQ to know if that is indeed what happens. Can anyone here advise?

Thank you in advance for your help!

Best regards,

More information about the zeromq-dev mailing list