CoreDX DDS Performance

CoreDX DDS from Twin Oaks Computing offers the leading small footprint Publish-Subscribe middleware with the best overall performance.

CoreDX DDS provides a perfect balance of performance and resource conservation that is well-suited to projects that rely on distributed software to deliver high-performance systems. And you don’t need enterprise class hardware to host CoreDX DDS. Our software can be employed on inexpensive, consumer grade hardware. You will appreciate the reduction in Total Cost of Ownership.

The performance metrics presented here show that CoreDX DDS can scale to large networks while delivering network data with extremely low latency. In fact, these numbers show that CoreDX DDS can out-perform most other communications infrastructures, including those other, self-proclaimed, "leaders".

Furthermore, CoreDX DDS is easy on system resources. Our focus on optimizing processor, network, and memory resources makes CoreDX DDS the smallest footprint DDS implementation available. The memory utilization metrics show that CoreDX DDS achieves ultimate performance without the memory bloat exhibited by other messaging infrastructures.

Latency

The 1-to-1 latency performance metrics show that CoreDX DDS achieves latency that is below 50 microseconds (uSec) for messages that are 128 bytes and smaller. As shown in the second graph, the latency scales linearly for larger packets.

CoreDX DDS latency

CoreDX DDS Latency (large packets)

Further, the standard deviation in the latency measurements is exceptionally small: less than 2 microseconds. Plotting the 99% minimum, average, and maximum values shows very small variation in latency over a wide range of packet sizes (see the third graph). This shows that CoreDX DDS can deliver low latency data with very little ‘jitter’ or variation.

CoreDX DDS Latency Jitter

Throughput

The next graph depicts the sustained throughput capable with CoreDX DDS. The test is run between two machines, using a single writer and a single reader. The data is published via MULTICAST and is in guaranteed order.

CoreDX DDS Throughput

This throughput approaches the theoretical limit of a 1 Gigabit ETHERNET connection, considering the overhead associated with UDP, IP and ETHERNET. CoreDX DDS employs sophisticated packet coalescing, and delayed writes to effectively use the available network bandwidth while reducing CPU utilization. These features are available in every CoreDX DDS platform release, and do not require special application configuration.

CPU Utilization

The CPU Utilization graph shows a long running throughput test, transmitting 1024 byte messages, with a total throughput of over 700 Megabits/sec. The CPU utilization of a single core doesn’t exceed 30%. On a machine with 4 cores, this equates to less than 10% of the total available CPU resource.

CoreDX DDS CPU Utilization

Memory Utilization

CoreDX DDS exhibits stable memory utilization at run-time. This critical aspect of middleware components is often overlooked when examining performance. A middleware that consumes extreme amounts of memory during execution is not suitable for deterministic or resource constrained systems: these bloated products must be hosted on enterprise class hardware, and this leads to increased costs.

The following graphs show that CoreDX DDS can maintain a small and consistent memory footprint during execution of latency or throughput heavy applications. The memory graph includes all memory assigned to the program, including: text (code), static and local variables, stack memory, and heap allocated memory.

CoreDX DDS Memory Utilization

In these graphs, the initial increase (from 0 to about 200,000 bytes) is the program loading into memory. The next increase (about 150,000 bytes) is the creation of all the DDS entities required for the test, and finally, the long plateau demonstrates that CoreDX DDS does not perform memory allocations during normal data exchange. The tail end of the graph shows the deletion of the DDS entities, and finally the unloading of the program from memory.

CoreDX DDS Memory Utilization (Latency)

CoreDX DDS Memory Utilization (Throughput)

The test platforms used to produce these results include the following:

  • Linux 2.6 x86_64 on an Intel(R) Core(TM)2 Quad CPU Q9550 @ 2.83GHz
  • D-Link System Inc DGE-530T Gigabit Ethernet Adapter

and,

  • Linux 2.6 x86 Intel(r) Pentium(r) M processor 1.80GHz
  • Intel Corporation 82546GB Gigabit Ethernet Controller

and,

  • Netgear FVS124G Gigabit switch

From this analysis, it is apparent that CoreDX DDS with its small memory footprint and high-performance provides a well-balanced communications middleware that supports a wide range of platform deployments.