General findings¶
authors: | Joost Baars |
---|---|
date: | Feb 2020 |
Description¶
This page shows the general findings regarding the QoS policies.
Performance¶
The dds_write
function is around twice as fast with a static message (a
message that stays the same) compared to a message that is changing after each
write. A struct was sent using DDS containing 3 parameters. It did not seem to
matter how much data was changed in the struct. If the struct was changed (even
only one byte), the execution time of the write function would be around twice
as slow. The execution time of one write action was measured in this setup (the
average of 10k measurements). The average result was around 8500 nanoseconds for
a static message and around 16000 nanoseconds for a changing message. These
measurements are not reliable though but it shows that there is a clear difference
between the two configurations.
Liveliness of DDS objects¶
The liveliness on a topic can be requested using a function call
dds_get_liveliness_changed_status()
if the liveliness callback QoS is
configured with NULL
. The liveliness can also be configured to call a callback
function as soon as the liveliness changes. This liveliness callback is called when
a writer connects to the topic (also if the writer is part of the same participant).
The liveliness callback is not called for readers. Therefore, the number of active
readers on a topic cannot be detected.
CycloneDDS missing features¶
- The DDS extension for the QoS Database policy
- Asynchronous publisher does not seem to be implemented (possibly done automatically for you)