OnixS .NET 6.0 FIX Engine vs QuickFIXn performance comparison

Benchmark comparison based on standard OnixS reference implementation benchmark source code samples.

Hardware

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

Software

Ubuntu 22.04
OnixS FIX Engine for .NET / .NET 6 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.