Low-Latency Trading: Micro-Optimisations and the Impact of Compliers, O/Ss and Spectre & Meltdown
Continued demand has meant this talk is updated with results from the latest versions of G++ and Clang! The talk shall cover, amongst other items: an analysis of some micro-optimisation techniques with particular focus on the quirks in generated assembler due to different compiler versions. Exactly what is static branch-prediction, and how is it (ab)used? Followed on by the “curious case of the switch-statement”. All of these, and more, have been successfully implemented in a simple FIX-to-MIT/BIT trading system, for which the performance shall be analysed. Moreover the impact of selected O/Ss upon performance shall be discussed. Much has been written and speculated upon the mitigations for Spectre and Meltdown upon performance. I shall present results that appear to contradict the currently-propounded beliefs of some major organisations.