I have been working for a while with interprocess communication using Boost and have managed to pass big amounts of data between multiple processes/executables in POSIX. When reading from the shared memory i simply use memcpy
. However, one chunk of data is especially big (~30MB) and time-critical which makes passing data using memcpy
problematic.
The goal here is to be able to pass the 30MB chunk of data from process 1 to process 2 without having to move memory, but rather having process 2 access it immediately using some sort of pointer-like behaviour. The problem I am facing here, of course, is the "limitations" of the address space.
Reading online I found that Boost offers offset_ptr
, but I am unsure of if this is the right way to go.
Could someone shed some light on this problem? Any help is appreciated.