Description

This section describes performance scenarios and numbers obtained using PerformanceTest application that is part of the migration package (source code). The application code is written using the QuickFIX©* interface, the same source code is used when running the test with QuickFIX and FIX Antenna® library.

Latency

The test application establishes a FIX session on a local host using an instance of ThreadedSocketAcceptor/Initiator class. A FIX message (NewOrderSingle) is repeatedly sent within the session. The time of the FIX message travelling from the sending endpoint to the receiving endpoint is measured and reported. This is the time which is spent between Session::send() call and MessageCracker::onMessage(). FIX session uses persistent disk message store.

Message send/receive latency. FIX Antenna QF Adaptor

  • CPU: AMD Phenom II X4 3.0 GHz
  • Average message latency with FIX Antenna: 38 mcs (min: 34, max: 276)
  • Average message latency with QuickFIX: 146 mcs (min: 141, max: 14528)
  • Conclusion: The message delivery time with FIX Antenna® QF Adaptor is 3.7 times less than that of the QuickFIX library.

Throughput

The test application establishes FIX sessions on a local host using an instance of SocketAcceptor/Initiator class. A FIX message (NewOrderSingle) is repeatedly sent into each of the created sessions. The test ends once all of 1,000,000 messages are delivered to the receiving endpoint. The test calculates the throughput, that is the number of messages delivered per 1 second.

Message throughput. FIX Antenna QF Adaptor

Conclusion: The message throughput of FIX Antenna® with QF adaptor is 7.2 times more than that of the QuickFIX using the single instance of SocketAcceptor/Initiator class that hosts the sessions. With FIX Antenna® you don't need to decide how many of the SocketAcceptor instances to launch in order to load your CPU cores with enough work. The scalability is achieved automatically regardless the session grouping within particular acceptor/initiator instances.