Latency, Throughput, CPU Usage Tests (fixed-length data type) of Swift DDS from Greenstone Technology

Tests on same host

We conduct latency, throughput and CPU usage tests on the same host for fixed-lengh data type (array) packets, with packet size 1k, 4k, 16k, 64k, 256k, 1M, 4M. We show the results for different transport channels: Intra-process communication using local transmission (INTRA), inter-process communication using shared memory transmission (SHMEM), and inter-process communication using zero_copy transmission (Zero Copy). We also show the results with environment variable ROS_DISABLE_LOANED_MESSAGES=0 for both publishers and subcribers, which is ROS2's Zero Copy Loaned Messages mechanism. The host is an X64 machine with Intel(R) Xeon(R) E-2314 CPU and NetXtreme BCM5720 1000M ethernet controller.

Latency test for different transport channels with ROS_DISABLE_LOANED_MESSAGES=1

The scenario consists of 1 publisher and 1 subscribter.

CPU usage with ROS_DISABLE_LOANED_MESSAGES=1

The scenario consists of 1 publisher and 1 subscribter.

Latency test for different number of subscribers and INTRA with ROS_DISABLE_LOANED_MESSAGES=1

We show the latency results for 1 publisher and 1 subscriber, 3 subscribers and 10 subscribers respectively, using INTRA transport.

Latency test for different number of subscribers and SHMEM with ROS_DISABLE_LOANED_MESSAGES=1

We show the latency results for 1 publisher and 1 subscriber, 3 subscribers and 10 subscribers respectively, using SHMEM transport.

Latency test for different number of subscribers and Zero Copy with ROS_DISABLE_LOANED_MESSAGES=1

We show the latency results for 1 publisher and 1 subscriber, 3 subscribers and 10 subscribers respectively, using Zero Copy transport.

Latency test for different transport channels with ROS_DISABLE_LOANED_MESSAGES=0

The scenario consists of 1 publisher and 1 subscribter.

CPU usage with ROS_DISABLE_LOANED_MESSAGES=0

The scenario consists of 1 publisher and 1 subscribter.

Latency test for different number of subscribers and INTRA with ROS_DISABLE_LOANED_MESSAGES=0

We show the latency results for 1 publisher and 1 subscriber, 3 subscribers and 10 subscribers respectively, using INTRA transport.

Latency test for different number of subscribers and SHMEM with ROS_DISABLE_LOANED_MESSAGES=0

We show the latency results for 1 publisher and 1 subscriber, 3 subscribers and 10 subscribers respectively, using SHMEM transport.

Latency test for different number of subscribers and Zero Copy with ROS_DISABLE_LOANED_MESSAGES=0

We show the latency results for 1 publisher and 1 subscriber, 3 subscribers and 10 subscribers respectively, using Zero Copy transport.

Tests on two hosts

We also conduct latency and throughput tests on two hosts using UDP transport,for fixed-lengh data type (array) packets with packet size 1k, 4k, 16k, 64k, 256k, 1M, 4M. The two hosts are of same type: Intel(R) Xeon(R) E-2314 CPU and NetXtreme BCM5720 1000M ethernet controller, connected through 1000M ethernet.

Latency test for UDP transport

The scenario consists of 1 publisher and 1 subscribter and we calculate the latency using the ping-pong method.

Throughput test for UDP transport

The scenario consists of 1 publisher and 1 subscribter