Benchmarks

There is a set of session configuration parameters that can be controlled to optimize session performance:

FIX Antenna is highly optimized for throughput and latency. Obviously these two optimization parameters can never be satisfied both at the same time. Improving throughput (e.g. by combining small packages in a single bunch) decreases the number of buffer allocations and network interrupts and thus minimizes the average message sending time. However it introduces a delay for sending a single package and thus increases latency.

Throughput

Througput is the amount of data transferred from one place to another or processed within a specified period of time. FIX Antenna throughput is a number of message transferred from sender to receiver per second. It is calculated as the number or sent messages (N) divided by the delta between the first and the last message receipt time: t1 and tN, respectively, i.e.

throughput.png

Current FIX Antenna throughput exceeds 50k messages per second on a typical server PC with persistent message storage. All-in-memory mode typically scores around 150k message per second.

Latency

Latency is the period of time it takes the data to travel from source to destination. We are present a set of difference latency metrix to cover all required cases. Depends on the desired task you may need to know how fast antenna sends or receives messages itself, or what it will cost to do this in some combination.

Send And Receive Latency

This benchmark measures a delay between sending message from one side and receiving it from another. Also this time includes the system delay for passing data through localhost loop. The starting point of measures is a point before call to FIXSession.sendMessage() by sender (t1) and the end point is inside the user callback on the acceptor side (t4).

send_and_receive_latency.png

Send Latency

This benchmark measures the time for processing outgoing message inside engine. The starting point of measures is a point before call to FIXSession.sendMessage() (t1) and the end point there is just before the sending packet with serialized message to socket(t2).

Receive Latency

This benchmark measures time required to process received packet and provide the FIX message to user. The starting point of measures is a point right after receiving a data from socket (t3) and the end point is inside user callback (t4).

Receive And Send Latency

This benchmark measures time for processing incoming message and sending the answer. The starting point of measures is a point right after receiving a data from socket (t3) and the end point is just before sending the packet with answer to counterparty (t2).

receive_and_send_latency.png

Current FIX Antenna Send And Receive latency does not exceed 19 microsecond on a typical server PC with persistent message store. All-in-memory mode typically reach up to 10 microsecond.

You can find also this result online in our Perfomance Lab

Generated on Thu Sep 4 19:43:07 2014 for FIXAntennaJava by  doxygen 1.6.3