Performance problem RTI Connector (Node.js) event-based reading

2 posts / 0 new
Last post
Offline
Last seen: 2 months 2 weeks ago
Joined: 02/26/2019
Posts: 1
Performance problem RTI Connector (Node.js) event-based reading

Hello,

I am using DDS (Connext) to send an image stream (512 x 512 x 1 byte, @ 10-20 Hz) between C++ processes and I would like to send the image stream also to a browser based UI on the same PC. As websockets are not supported, I am using  RTI Connector for Node.js with the event-based reading. Event-based reading is required, as we want do display the image as soon as it is available.

However, the connector doesn't notify the 'on_data_available' frequently enough to keep up with the image stream. I observe 2 problems:

  • A lot of images are dropped (only 3-5 images / sec. received in Node.js)
  • The 'on_data_available' isn't called anymore after receiving a number of images

The qos_profile is the same for the C++ and Node.js process. The C++ participants can keep up with the image stream.

I have 2 questions:

  • Is this performance difference for the RTI connector for Node.js as expected, and what can I do to improve it?
  • Are there other / better alternatives to connect the browser based user interface to a DDS C++ process?

Regards,

Pascal

gianpiero's picture
Offline
Last seen: 3 months 1 week ago
Joined: 06/02/2010
Posts: 174

Hello Pascal,

Thank you for writign on the forum. 

The connector is using DynamicData instead of copiled types. Are you using compiled types in C++? DynamicData today is significantly slower than compiled type. The good news is that we addressed this issue and in the next release you should see lots of improvements when it comes to dynamic data. 

That being said, how are you accessing the images? Are you using the getJSON API? The API to access large arrays or sequences are not ideal right now. 

In C++ you can use the get and set the data in one go, while in connector you have to go field by field. We have built some work-around for a customer but is not public yet. You can email me directly gianpiero {at} rti.com and i can try to help you out with that workaround. 

 

Cheers,

  Gianpiero