1. Introduction

1.1. Testing Performance

This document describes how to run a combined latency and throughput test application for RTI Connext DDS.

The test measures what is sometimes called loaded latency – latency at a given throughput level. It can help you answer questions such as:

  • For a given publishing configuration (e.g., queue size, batching settings), sample size, and subscribing configuration (e.g., queue size, Listener vs. WaitSet) what is the throughput of my network?
  • When my network is heavily loaded, what latency can I expect?
  • For a given configuration, what is the best-case latency with no other traffic on the network?

For examples of specific configurations, see See Example Command Lines for Running the Performance Test.

This performance test is implemented in C++ (Traditional and Modern APIs), C# and Java.

Note: All references in this document to “C++” refer to both the Traditional and Modern C++ APIs unless otherwise noted.

1.2. Overview

The publishing side of the test writes data as fast as it can. Every few samples (configured through the command line), it sends a special sample requesting an echo from the subscribing side. It uses this request -> echo exchange to measure round-trip latency.

PerfTest Overview Diagram

PerfTest Overview Diagram

As you will see in Section 8, there are several command-line options, including ones to designate whether the application will act as the publisher or subscriber.

You will start multiple copies of the application (typically 1 publisher and 1 or more subscribers):

  • The publishing application publishes throughput data; it also subscribes to the latency echoes.
  • The subscribing applications subscribe to the throughput data, in which the echo requests are embedded; they also publish the latency echoes.

The publisher prints the latency test results meanwhile the subscriber prints the throughput results.