Skip to content

Instantly share code, notes, and snippets.



Last active Dec 21, 2017
What would you like to do?
DDS Performance

What causes delay?

  • Parsing and marshalling of messages
  • Transmission
  • Service discovery
  • Docker network driver
  • OS?
  • Hardware network controller


  • Message size
  • QoS settings
  • With / without reconstruction layer
  • (De-/) centralized discovery service
  • Ordinality (one to many)
  • Wait Sets / Listener
  • Performance optimizations
    • Using message instances (DevGuide 2.2.1)
    • Reading multiple samples (DevGuide 2.2.2)
    • Zero Copy Read vs. Single Copy Read (DevGuide 2.2.3)
  • Transport
    • Shared Memory
    • rtps_udp
    • rtps_udp cross host
    • tcp
    • tcp cross host


Research questions

  • How does DDS scale when increasing the message size?
  • How does DDS scale when increasing the number of subscribers?
    • Prediction: No change at all because each message is sent only once. How about unicast?
  • Which Docker network driver performs best?
  • How many resources does Docker use when vertically scaling a subscriber on the same node?


Test Setup
  • 2 Raspberry Pis 3rd gen
  • 100 Mb/s Switch
  • Cat 5e twisted pair Ethernet cables
Test Runs

Threats to Validity

  • We're only testing with two nodes.
  • Network bandwith limitations of hardware
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment