01
行情系统概述
嵌入式行情系统的定义、核心功能、典型架构(数据接入层、处理层、分发层)
架构定义
02
性能基准测试基础
什么是基准测试、为什么需要基准测试、关键性能指标(吞吐量、延迟、抖动、CPU/内存占用)
指标概念
03
测试环境搭建
硬件选型(ARM Cortex-A72 vs x86)、操作系统配置(实时内核补丁)、网络拓扑设计
硬件OS
04
测试工具链
sysbench、perf、stress-ng、自定义C压测工具的安装与基本使用
工具压测
05
数据源模拟
使用Python脚本生成模拟行情数据(Level-1/Level-2快照、逐笔成交、订单簿)
Python模拟
06
延迟测试方法
端到端延迟测量、内核旁路技术(DPDK)、硬件时间戳(PTP)的使用
延迟DPDK
07
吞吐量测试
消息队列(Kafka/RabbitMQ)的吞吐量压测、TCP/UDP socket吞吐量对比
MQ吞吐
08
抖动分析
使用cyclictest测量调度延迟、分析抖动来源(中断、上下文切换、内存带宽竞争)
实时调度
09
CPU性能剖析
perf stat/top/record的使用、热点函数定位、缓存命中率分析
perf热点
10
内存性能测试
内存带宽(stream benchmark)、内存延迟(lmbench)、TLB缺失影响
内存带宽
11
I/O性能测试
磁盘读写(fio)、文件系统选择(ext4 vs XFS vs tmpfs)、mmap vs read
磁盘fio
12
网络性能测试
netperf、iperf3、sockperf的对比测试、TCP_NODELAY与Nagle算法影响
网络TCP
13
多核扩展性测试
Amdahl定律在行情系统中的应用、线程/进程模型对比、CPU亲和性设置
多核亲和性
14
锁竞争分析
使用lockstat、heaptrack检测锁争用、无锁数据结构(ring buffer)的实践
锁无锁
15
实时性测试
RT-Linux与普通内核的延迟对比、中断线程化、优先级反转场景复现
RT优先级
16
压力测试场景设计
正常行情、瞬时爆发(如开盘)、异常数据(乱序、重复、缺失)的模拟
场景异常
17
稳定性测试
72小时长稳运行、内存泄漏检测(valgrind)、句柄泄漏监控
长稳valgrind
18
性能基线建立
如何定义基线、基线数据采集方法、版本间性能回归对比
基线回归
19
自动化测试框架
使用Python + pytest搭建自动化基准测试框架、参数化测试用例
pytest自动化
20
结果可视化
使用matplotlib/plotly绘制延迟分布图、吞吐量趋势图、CPU火焰图
可视化火焰图
21
性能瓶颈定位方法论
USE方法(Utilization、Saturation、Errors)、USE在行情系统中的应用
USE方法论
22
代码级优化
编译器优化选项(-O2 vs -O3)、LTO、PGO、内联汇编优化关键路径
编译LTO
23
数据结构优化
选择合适的数据结构(哈希表 vs 红黑树)、缓存行对齐、预取指令
数据结构缓存
24
内存池技术
自定义内存池 vs jemalloc/tcmalloc、避免内存碎片、对象池化
内存池碎片
25
零拷贝技术
splice、sendfile、DPDK零拷贝在行情分发中的应用
零拷贝DPDK
26
序列化优化
Protobuf vs FlatBuffers vs Cap'n Proto的编解码性能对比
序列化编解码
27
多线程编程模型
Reactor模式、Proactor模式、线程池调优、工作窃取算法
多线程Reactor
28
性能调优案例
某券商行情系统延迟从50us优化到10us的实战复盘
案例调优
29
性能报告撰写
如何编写专业的性能测试报告、关键指标呈现、改进建议
报告文档
30
课程总结与展望
未来趋势(FPGA加速、SmartNIC、CXL内存扩展)与学习路径
趋势FPGA