Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Environment

Sender Host:

  • Intel(R) Xeon(R) CPU E5-2643 v3 @ 3.40GHz (2 CPU Hyper-Trading Enabled, 24 Cores)
  • RAM 128 GB, 2133 MHz
  • NIC Solarflare Communications SFC9120 (Firmware-version: 4.2.2.1003 rx1 tx1)
  • Linux (CentOS 7.0.1406 kernel  3.10.0-123.el7.x86_64)
  • SolarFlare driver version: 4.1.0.6734a

...

  • Intel(R) Xeon(R) CPU E5-2687W v3 @ 3.10GHz  (2 CPU  Hyper-Trading Enabled, 20 Cores)
  • RAM 128 GB, 2133 MHz
  • NIC Solarflare Communications SFC9120 (Firmware-version: 4.2.2.1003 rx1 tx1)
  • Linux (CentOS 7.0.1406 kernel  3.10.0-123.el7.x86_64)
  • SolarFlare driver version: 4.1.0.6734a

Test scenario

The test scenario is the following:

...

During the test Round-trip time (RTT) latency is measured. The first measurement, t1, is made before the message is sent by the Initiator, the second, t2, is made after the received message is parsed by the Initiator.

RTT=t2-t1.

Test configurations

Properties
BalancedOptimized
Nagle's algorithm1

Message validation parametersvalidateCheckSum

validateGarbledMessage
Storage type
PersistentIn memory
Queue type
PersistentIn memory

...

  • Balanced. It is the good starting point with balanced performance and security. Basic validation options are enabled to prevent corrupted message processing.
  • Optimized. It is the configuration aimed at maximum performance. All validation options as well as message persistence are disabled, so it has to be used only in the fully controlled environment.

Results

FIX Antenna Java configurations comparison

ConfigurationBalancedOptimized
Latency values (microseconds)
Min
39,927,2
Max
1442,31200,7
Average45,831,1
Latency distribution (percentiles)
50%4329,5
95%62,639,3
99%74,857,6

FIX Antenna Java 2.15.27 vs QuickFIX Java 1.6.3

The benchmark code was ported to QuickFIXJ:

...