Can anyone who is familiar with the currently available implementations of DDS give me a rough idea of the typical minimum memory footprint of DCPS (i.e., how much RAM must my target platform provide to run DCPS)?
Some numbers for C and C++ implementations would be interesting to compare.
I guess it depends on the DDS implementation, but for OpenSplice DDS its like this:
- each application will be linked to a shared-library (.so file) of about 1 Mbyte (so only in memory once), depending on language (1.5 Mbyte for C++/Java based applications)
- we utilize a shared-memory segment to hold a single-copy of topic-samples, regardless of the number of dataReaders for it. Since the DDS-spec also specifies a lot of 'built-in' topics that are present 'by-definition' it makes sense to reserve at least 1 Mbyte of shared-memory. But the actually needed amount is very depending on the number of readers, topic-structure, amount-of topic-instances in the system driven by history settings.
- Heap/stack around 30 Kbyte per reader/writer
Please note that the above is for the full-profile DCPS implementation (minimum, ownership, content-subscription, persistence).