refacto: disable shared-memory feature by default #182
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The current implementation is not as optimised as it deserves to be. In short, if the shared memory is enabled, then every time Zenoh-Flow will send data through Zenoh (be it between runtimes on the same host or on different hosts) it will first attempt to send it through shared memory.
As it is now, sending data through shared memory requires a copy as the data does not reside inside a shared memory buffer (it must be copied from the programs memory to the shared memory).
In cases where there is actually a shared memory buffer, this could still lead to better performance. However, as the current design enables it everywhere, if there is no shared memory then the data is copied twice: (i) from the programs memory to the shared memory and (ii) from the shared memory to a Zenoh buffer to be sent on the network.