Tips for increasing rticonverter's performance

2 posts / 0 new
Last post
Offline
Last seen: 7 months 2 weeks ago
Joined: 02/08/2021
Posts: 21
Tips for increasing rticonverter's performance

Hello.

We have written a plugin for the rticonverter to transform to HDF5 that could probably be used by the rtirecorder.

We often get users telling us that conversion is slow, way slower than real time, it takes more time to convert the data than to record it.

When profiling we see that DDS DynamicData related functions are dominating the run time.

On the first two attached screenshots you can see that our StackTopReset function dominates all the stack traces. As the parser is recursive it appears at multiple stack depths.

On the third attached screenshoot you can see that on StackTopReset most time is spent on DynamicImpl::loan_value and DynamicImpl::member_info.

<thread_pool> on the XML configuration seems to have no performance effect. We have measured our plugin against the builtin JSON backend and both seem to be pretty equivalent performace wise.

If we run the conversion directly on the rtirecorder, could we expect more performance when the data comes from the wire instead of from the DB?

Are there any tips to make this conversion faster?

Offline
Last seen: 7 months 2 weeks ago
Joined: 02/08/2021
Posts: 21

I have noticed that adding more threads to a given session <thread_pool> has no effect.

Adding more sessions does indeed result in parallelization, but that requires knowledge of the topics beforehand, so they can be assigned to different sessions. In our case this is inconvenient.

Am I doing something wrong?