[zeromq-dev] Multicore Magic
sustrik at 250bpm.com
Mon Apr 26 21:07:17 CEST 2010
> Presumably there is then a way to use shared memory to get full-speed
> message transfer between processes. Martin, does that make sense?
No, there's not. There are multiple problems with shared memory:
1. Control events still have to be transferred via some IPC mechanism
even if message payload is stored in shmem. So there's no way to improve
latency to the level of inproc transport.
2. Allocating shmem is not free. Allocating shmem buffer for each
message would turn to performance bottleneck.
3. It can make sense to allocate message payload in shmem for very large
messages - so large that the cost of copying required by underlying IPC
transport would exceed the cost of allocating shmem buffer.
In the latter case I would suggest allocating the shmem buffer manually
and pass the pointer as a 0MQ message to the other peer.
More information about the zeromq-dev