Replies: 1 comment 1 reply
-
No, there is no such plan, and I do not know of any commercial interest in that. What platform would have heap allocation available, but only at startup? Making RustDDS work without (run-time) heap allocation would amount to a redesign rather than optimization. We need dynamic allocation because of the several unknowns:
It may be possible to resolve or limit some of these at compile time, or at startup, but it would be quite a large task. Most likely, some of the allocation would end up being handled with private memory pools, where a pool is allocated at startup, and run-time allocation is operating dynamically within the pool, much like an operating system manages physical memory pages. Some of the bookkeeping could be avoided by supporting only stateless Readers and Writers, but that would also drop the ability to have QoS Reliability = Reliable. Stateful Readers are needed to implement that. (See the RTPS spec Section "8.4 Behaviour Module") Overall, what you are suggesting seems like a large task, but please feel free to take it forward if you are interested. However, it is unlikely that such large changes would be accepted into RustDDS master branch, as they would add complexity and disrupt other work too much. |
Beta Was this translation helpful? Give feedback.
-
Hello, love the project. Is there any thoughts of making this work in real time embedded systems? A lot of the main send/receive paths allocate heap memory via vec instantiations and so forth, and it seems the RTPS loops do as well. Would there be interest in optimizations there to only do heap allocation on startup?
Beta Was this translation helpful? Give feedback.
All reactions