FIX¶
Using propritary implementation designed to be cache friendly and avoid memory allocations.
Gateways may bundle tool to compute benchmark metrics, e.g.
conda install -y --channel https://roq-trading.com/conda/stable \
roq-deribit
roq-deribit-benchmark --benchmark_filter="BM_fix_*"
You should then be able to see something like this
-------------------------------------------------------------------------------------------------
Benchmark Time CPU Iterations
-------------------------------------------------------------------------------------------------
BM_fix_execution_report_parse_message 601 ns 601 ns 1035141
BM_fix_heartbeat_parse_message 136 ns 136 ns 5163223
BM_fix_logon_parse_message 361 ns 360 ns 1940403
BM_fix_logon_create_message 489 ns 489 ns 1438179
BM_fix_logout_parse_message 142 ns 142 ns 4932632
BM_fix_market_data_increment_refresh_parse_message_1 521 ns 521 ns 1343861
BM_fix_market_data_increment_refresh_parse_message_2 1920 ns 1920 ns 365391
BM_fix_market_data_request_reject_parse_message 157 ns 157 ns 4467807
BM_fix_market_data_snapshot_full_refresh_parse_message 27570 ns 27546 ns 25225
BM_fix_new_order_single_create_message 504 ns 504 ns 1317497
BM_fix_order_cancel_reject_parse_message 155 ns 155 ns 4521796
BM_fix_order_cancel_replace_request_create_message 550 ns 549 ns 1308374
BM_fix_order_cancel_request_create_message 295 ns 294 ns 2401225
BM_fix_position_report_parse_message 541 ns 540 ns 1296059
BM_fix_reject_parse_message 154 ns 154 ns 4553341
BM_fix_security_list_parse_message 150536 ns 150521 ns 4652
BM_fix_user_response_parse_message 426 ns 426 ns 1627842
Note
The FIX decoder is proprietary and will not be described any further here.