Performance of set_qos and create_participant

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

Hello:

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.

Organization:
ajimenez's picture
Offline
Last seen: 2 years 3 months 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.

Best,
Antonio.

Offline
Last seen: 5 years 3 months 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;

factory->set_qos(qos);
 
The set_qos() call takes the longest time by far.