Performance of set_qos and create_participant

3 posts / 0 new
Last post
Last seen: 5 years 1 month ago
Joined: 12/07/2016
Posts: 10
Performance of set_qos and create_participant


I have an application that loads a fairly extencive QoS.xml file and configures several DDS readers and writers. I'm trying to optimize the startup time of this application. After profiling I found that most of the start time (>80%) is spent in set_qos and create_participant methods. Together they take ~440ms.

Are there ways to improve the start time?


Thank you.

ajimenez's picture
Last seen: 2 years 4 weeks ago
Joined: 09/29/2017
Posts: 21

Hi Ilya

I have checked the necessary time to create a participant with a QoS and the time is around 20milliseconds. 

Could you please provide us with the next information:

  • Language
  • Architecture
  • QoS (XML file)
  • Snippet code of the create_participant and set_qos

Thank you.


Last seen: 5 years 1 month ago
Joined: 12/07/2016
Posts: 10
  1. C++14
  2. RTI 5.3.1 on x64Linux3gcc5.4.0
  3. Sorry, I can't share the whole QoS file with you. Are there any particular items you are interested in?
  4. Code
// Get DDS factory
DDSDomainParticipantFactory * factory = DDSDomainParticipantFactory::get_instance();

// Load QoS profiles
DDS::DomainParticipantFactoryQos qos;
DDS::DomainParticipantQos participant_qos;
DDS::ReturnCode_t retcode = factory->get_qos(qos);
if (retcode != DDS_RETCODE_OK) {
return false;

qos.profile.url_profile.ensure_length(1, 1);
qos.profile.url_profile[0] = DDS_String_dup(kVahanaIdlQosUrlGroup);
qos.profile.ignore_resource_profile = DDS_BOOLEAN_TRUE;

The set_qos() call takes the longest time by far.