Hello-
As we gradually add new types to our system we are starting to reach the limits of available memory. We have one or two types that are particularly large.
Suppose we have a single type that contains an array of data totalling 100MB in size. Assume we want strict reliability and have no need at present to queue up multiple reads. Consider it an error if we cannot process the current read before the next write is posted to our endpoint. Assume this is not a keyed topic and there is 1 remote writer.
I am finding that under no circumstances can I reduce the memory used for this single topic to less than 3 samples. I've worked through a lot of the QoS settings. It seems that at least 1 sample is required for re-assembly (initial_fragmented_samples & max_fragmented_samples) and one sample is required to cache a completely re-assembled sample in the receive queue for handing to the application.
I'm not exactly sure what to expect wrt the minimum amount of memory for such a topic, type, and associated data reader. I've gone through the documentation but I suspect there is something to learn from the experts here.
Can you summarize the minimum set of samples I could expect to cache?
Also, per documentation I suppose VxWorks may support a zerp-copy buffer. The scenario tested above is on MS Windows.
Sincerely-
Todd Moody
Hi Fernando,
is there an update on the feature of dynamic memory allocation on DataReader side? This feature would make our lives much easier at the moment.
I read some posts in this forum on how to get that feature, but the solutions required modifying the generated code from the idls, which I really don't want to get into.
Thanks, Ulrich