Technical Informational Note:
OnixS directConnect NYSE LIFFE UTP XDP C++ FAST Decoder Benchmarks
London: Friday 9th December 2011 - OnixS offers the OnixS selfConnect C++ range of FIX Engine and FAST Encoder/Decoder class library implementations that can be used with any ANSI C++ compliant compiler to provide high performance FIX standards based solutions for mission-critical trading systems.
The FAST Encoder/Decoder implementation is used within the OnixS directConnect venue specific solutions where the venue provides FAST Encoded market data feeds. The OnixS directConnect: NYSE LIFFE UTP Exchange Data Puublisher (XDP) Market Data Handler is one such example.
The OnixS directConnect: NYSE LIFFE XDP Market Data Handler provides functionality well beyond just the FAST Market Data decoding. Features include synchronization and recovery, full book management with full Order book depth, and an individual subscription/callback API model allowing the selection of specific product groups. This solution is designed to be closely coupled to automated trading strategies by offloading the book management tasks to a specialized implementation.
This OnixS Technical Informational Note describes, and is specific to, the XDP FAST Decoding performance profile for general reference.
What was benchmarked:
The decoding sample used is based on XDP service #33 (STIR Futures – Level 1 + 2) using two FAST encoded packets consisting of 17 and 2 messages respectively.
For this measurement we took a single sample FAST Encoded Packet and decoded it 2 million times to measure the decoding performance.
Performance Profile Results:
Throughput (messages per second) |
||
---|---|---|
Platforms |
||
Data Stream (# messages/packet) |
Win x64 |
Linux CentOS 6 x64 |
2 |
1,788,909 |
1,910,219 |
17 |
1,829,531 |
1,929,625 |
Latency (nanoseconds per message) |
||
---|---|---|
Platforms |
||
Data Stream (# messages/packet) |
Win x64 |
Linux RHEL 6 x64 |
2 |
559 |
523 |
17 |
547 |
518 |
Environment:
We benchmarked on a common hardware platform using 2 different Operating System and compiler environments using the same OnixS code base:
The common hardware platform was an Intel Core i7-2600 @3.4Ghz (Server equivalent Intel Xeon E3-1275) and 16Gb of DDR3 RAM @ 1333Mhz.
The used a single thread use-case in two environments:
• Windows 7 Ultimate 64-bit Edition SP1 with Microsoft Visual C++ 2010 test cases compiled for 64-bit.
• The Linux environment was CentOS 6 ((2.6.32-71.29.1.el6.x86_64)) 64-bit (x64) using gcc 4.4.4.
Summary:
We observed a marginal throughput advantage with CentOS over Windows x64 with CentOS being between 5.5%-6.8% better in throughput.
The latency performance shows a similar profile – CentOS being 5.3%-6.4% less than Windows x64.
Iterating over the sample XDP FAST Encoded Packets shows maximum throughput in excess of 1.9 messages per second on a Linux RHEL 6 x64 platform with a latency of 518 nanoseconds.
This Technical InfoNote is a baseline performance profile for informational purposes only. The only performance that matters is that which users of OnixS solutions see within the target deployment platforms and context. We therefore provide the benchmark code and fast-start reference implementation source code within our standard distributions. We encourage you to execute these tests to measure and profile your own results.
Click here to download this OnixS TechInfoNote in pdf format.
- Ends -