用于高频交易的 C++:代码优化的简单步骤

闪电般快速交易优化的重要性。

来源:安全实验室新闻频道

闪电交易优化的重要性。

即使硬件性能不断提高,代码优化仍然是一项重要任务。伦敦帝国理工学院的研究人员 Paul Bilokon 和 Burak Gunduz 最近发表的一篇论文研究了对于高频交易 (HFT) 等应用尤其重要的低延迟模式。在高频交易中,微小的利润被巨大的交易量所抵消,每一毫秒都很重要。

最近发表的文章 高频交易

虽然基于 FPGA(现场可编程门阵列)的解决方案由于其低延迟和高并行性而经常用于 HFT,但 C++ 仍然是主要的编程语言。

本文作者重点介绍了几种明显的优化技术,例如预加载 CPU 缓存、使用 constexpr、循环展开和内联。然而,也有一些不太明显的模式,例如热路径和冷路径的分离(热路径与冷路径)。这种方法呼应了分支减少模式,包括分离频繁执行和很少执行的代码(例如,错误处理和日志记录)。这提高了 CPU 缓存利用率并防止分支错误预测,正如使用 Google Benchmark 的测试所验证的那样。所有设计模式也可以在 GitHub 存储库中找到。

constexpr GitHub

其他有趣的点包括比较有符号数和无符号数的影响、混合浮点数据类型以及使用环形缓冲区的无锁编程。本文唯一未涵盖的内容是对齐和未对齐的内存访问以及非复制优化,但这些改进可以轻松地与其他优化一起添加和测试。