← Back to article listing


June 12, 2024
Share this

The OnixS FIX Engine SDKs include reference implementation source code samples that are an aid for developers to quickly get familiar with, and then adapt to the target contexts.

 

One of those samples includes performance benchmarks.

 

We’re often asked, “what is your performance like?”

 

The best answer is to measure it yourself using the included reference implementation benchmark samples on the target platform(s).

 

That remains the recommendation, but these are some performance comparison numbers that we are commonly asked about so we’re sharing them here. 

 

Hardware

Intel(R) Core(TM) CPU i-12900KA @ 3.4GHz

 

Software

Ubuntu 22.04

OnixS FIX Engine for .NET v 1.14.0
QuickFIXn.Core v 1.11.2

.NET Runtime 6.0

 

Throughput (msg/sec)

Message length: 131 bytes.

Mode

 

OnixS

 

QuickFIXn

 

Times OnixS faster

 

Send side

1 824 000

129 437

14x

Receive side

1 395 000

129 893

14x

 

Latency (microseconds)

Message length: 144 bytes.

Mode

 

OnixS

 

QuickFIXn

 

Times OnixS faster

 

Internal send min

0.24

0.739

3x

Internal send median

0.29

0.876

3x

Internal send 99%

0.42

1.170

2.7x

Overall send min

1.63

34.342

21x

Overall send median

1.83

35.436

19x

Overall send 99%

3.04

94.748

31x

RTT/2 min

2.47

17.370

7x

RTT/2 median

3.39

18.649

5.5x

RTT/2 99%

4.57

55.410

12x

 
 

Parsing (msg/sec)

Message size

 

OnixS

 

QuickFIXn

 

Times OnixS faster

 

Small (106 bytes)

4 635 000

734 975

6x

 


Notes:

  • There is no ability to measure internal receive latency in QuickFIXn because there is no onReceivedBytes analog as in the OnixS FIX Engine.

  • The QuickFIXn internal send latency, unlike the OnixS FIX Engine internal send latency, does not include the outgoing message serialisation and session storage latencies because the toApp callback is called before these processes.

Is your FIX Engine specifically designed for ultra-low latency, high-frequency trading infrastructure?