RTI Connext DDS Micro C++ API  Version 2.4.12
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
Configuring Resource Limits

Modules

 DomainParticipantFactoryQos
 DomainParticipantQos
 DataReaderQos
 DataWriterQos
 OSAPI
 UDP Transport
 Dynamic Participant Static Endpoint (DPSE)
 Dynamic Participant Dynamic Endpoint (DPDE)

Detailed Description

Introduction

RTI Connext DDS Micro is designed for use in real-time systems and uses a predictable and deterministic memory manager to ensure that memory growth is not unbounded, OS memory fragmentation is eliminated and memory usage can be determined a-priori. The advantage with this design is that proper operation is ensured as soon as steady state has been reached. However, it also places an additional burden on the system designer to properly configure each resource-limit. The purpose of this document is to describe all resource-limits in RTI Connext DDS Micro, what the behavioral impact is, and what the impact on memory usage is.

Dynamic Memory Allocation

RTI Connext DDS Micro allocates heap memory to create internal data-structures. It is important to know that RTI Connext DDS Micro manages memory allocated from the system heap using its own internal memory management, and only returns memory allocated from the system back to the system when something is deleted. That is, if an application never deletes anything, no memory is returned to the system.

As a rule of thumb, in RTI Connext DDS Micro only APIs that end in _create() or _new() allocate heap memory and APIs that end in _delete() or _free() frees memory. An exception to this rule is dynamic discovery which allocates memory at run-time for the topic and type names.

RTI Connext DDS Micro does not support dynamically allocating resources beyond the initial configuration. That is, all resource limits must be finite. This restriction may be removed in a future version.

Memory Model

All resource-limits in RTI Connext DDS Micro is specified in a Qos policy or property. The figure below illustrates where the various resource-limits are applied, and the following sections describe each user adjustable resource-limit in more detail. All numbers in blue corresponds to a resource-limit.

MicroMemoryMap.png
The memory used by each resource-limit and where they apply

RTI Connext DDS Micro C++ API Version 2.4.12 Copyright © Tue Feb 4 2020 Real-Time Innovations, Inc