eclipse-iceoryx / iceoryx

Eclipse iceoryx™ - true zero-copy inter-process-communication
https://iceoryx.io
Apache License 2.0
1.65k stars 384 forks source link

Copy small payloads - less header more efficiency #306

Open jeising opened 4 years ago

jeising commented 4 years ago

Brief feature description

Currently there is no copy in iceoryx communication. To enable this, there is a header to every message send around. This header has a considerable size.

The proposal would be to - like for functions, where you can copy the parameters or call them by reference/pointer - enable the possibility of copying small payloads (maybe half the size of the header) to foster the incentive to use iceoryx also for small messages.

This way the user does not need to consider, whether it would be smarter to copy or to use shared memory.

Detailed information

Cons:

Pros:

budrus commented 2 years ago

@jeising I currently see no other way than introducing another IPC mechanism like UDS or message queue. In fact we already use them for the communication with the RouDi daemon. From what I saw, iceoryx was still faster than those built-in OS IPC mechanisms also for messages with a size of some bytes. An optimization for intra-process could make sense. What was your problem? Or did you just think it could be more memory efficient?