期货高频交易C++性能优化手册

📚 共计 30 章节
01
高频交易概述
什么是高频交易、期货市场的特点、C++在高频交易中的优势
入门概念
02
性能度量标准
延迟、吞吐量、抖动、CPU周期计数、如何正确测量性能
度量基准
03
硬件架构基础
CPU缓存层级、NUMA架构、内存带宽、分支预测与流水线
硬件CPU
04
编译器优化
GCC/Clang优化级别、-march=native、LTO、PGO、内联与函数属性
编译GCC
05
内存布局优化
结构体对齐、缓存行填充、避免假共享、数据局部性原理
内存对齐
06
无锁数据结构
原子操作、内存序、无锁队列、无锁栈、ABA问题与解决
并发无锁
07
内存分配器
tcmalloc/jemalloc、内存池、对象池、栈分配器、Huge Pages
分配器性能
08
零拷贝技术
mmap、sendfile、splice、DMA、RDMA基础
IO零拷贝
09
网络栈优化
内核旁路、DPDK、Solarflare OpenOnload、TCP_NODELAY
网络内核
10
协议解析优化
FIX协议解析、二进制协议解析、SIMD加速解析
协议SIMD
11
时间同步
PTP、NTP、硬件时间戳、TSC寄存器、chrono库使用
时间同步
12
订单管理
订单生命周期、OrderBook设计、价格/时间优先级队列
订单撮合
13
风险控制
前置风控、实时风控、资金校验、仓位限制、撤单逻辑
风控安全
14
信号处理
信号槽、事件循环、epoll/io_uring、异步日志
事件异步
15
日志系统
spdlog、异步日志、环形缓冲区日志、日志级别动态切换
日志调试
16
配置管理
JSON/YAML解析、热加载、配置校验、环境变量
配置热加载
17
回测系统
回测引擎架构、撮合引擎、滑点模型、手续费模型
回测模拟
18
策略开发
策略基类设计、策略参数、策略状态管理、策略热切换
策略架构
19
多线程编程
线程池、任务队列、Future/Promise、协程与纤程
线程并发
20
锁优化
自旋锁、读写锁、RCU、锁粒度细化、锁消除
同步
21
内存屏障
编译器屏障、CPU屏障、volatile、std::atomic内存序详解
屏障内存序
22
性能分析工具
perf、FlameGraph、Valgrind、Callgrind、gperftools
分析工具
23
代码微优化
循环展开、分支预测优化、查表法、位运算技巧
微优化技巧
24
SIMD指令集
SSE/AVX基础、向量化加法、向量化查找、自动向量化
SIMD向量化
25
编译时计算
constexpr、consteval、模板元编程、类型萃取
编译期模板
26
异常与错误处理
异常开销分析、错误码、Expected模式、noexcept
异常错误
27
容器优化
std::vector vs 原生数组、小向量优化、flat_map、侵入式容器
容器数据结构
28
序列化优化
Cap'n Proto、FlatBuffers、自定义二进制序列化、零拷贝反序列化
序列化零拷贝
29
系统调优
CPU隔离、中断亲和性、内核参数调优、cgroup限制
系统调优
30
实战案例
从零构建一个极简高频交易系统、性能对比、常见坑总结
实战综合