3 ms·
On zero-copy: the article claims nanomsg uses it. The official documentation at http://nanomsg.org/development-bindings.html http://nanomsg.org/development-bind
by _pmf_ 12y ago
On zero-copy: the article claims nanomsg uses it. The official documentation at http://nanomsg.org/development-bindings.html http://nanomsg.org/development-bindings.html says something else:
> Zero-copy means that the application has to deal
> directly with different native memory buffers, for
> example with blocks of shared memory, or memory pinned
> down to physical memory address (so as to be accessible
> by zero-copy CPU-bypass techniques) and so on. This is
> hard, and sometimes even impossible, to get working
> with languages with automatic garbage collection.
>
> If you still want to provide zero-copy, make sure to
> discuss it on the nanomsg mailing list or IRC channel
> in advance to avoid possible pitfalls.
So, I assume that zero-copy is not used in any out-of-the-box implementation. Maybe someone with more experience can clarify this. The documentations further mentions zero-copy only in the local form of scatter/gather (used with vmsplice etc.), which is distinct from zero-copy to the network layer.
- rumcajz 12y agoNanomsg API is crafted in such a way as to allow for network-level zero-copy. This is much unlike other messaging products. However, I know of no implementation that actually uses that.