I was checking some bandwidth metrics on rmf_demos and came across some big differences between bandwidth usage depending on the DDS implementation that I used. These are the measurements of bandwidth on the loopback interface of a run of the office demo in one single host, executing the tasks json
file provided in the demo itself:
With fastRTPS:
Average Bandwidth: 59.912703 Kbps
Max Bandwidth: 550.43 Kbps
With CycloneDDS:
Average Bandwidth: 594.39997 Kbps
Max Bandwidth: 961.26 Kbps
I can’t help to wonder why such a big difference. My initial guess is that, since everything runs in on the same host, the Shared Memory Transport feature of fastDDS is avoiding a lot of network traffic… any other clues?
For your reference, if anyone wants to reproduce, I used the latest source version of the rmf_demos and ifstat -ntib lo
to log the bandwidth usage.