01
C++性能优化概述
为什么需要性能优化 · 目标与原则 · 常见误区
概述原则
02
编译器优化基础
-O1/-O2/-O3/-Os · 优化原理 · 查看汇编
GCC汇编
03
内存布局与对齐
结构体对齐 · padding/packing · 缓存行对齐
内存对齐
04
缓存友好型编程
CPU缓存层次 · 局部性原理 · 缓存命中 · 数据结构设计
缓存局部性
05
分支预测与优化
分支预测原理 · likely/unlikely · 查表法替代分支
分支预测
06
循环优化
循环展开/合并/交换/剥离 · 向量化
循环向量化
07
函数调用优化
内联函数 · 尾调用 · 调用约定 · 减少开销
内联调用
08
内联汇编与intrinsic
内联汇编 · SSE/AVX intrinsic · SIMD编程
SIMDintrinsic
09
内存分配与释放
new/delete vs malloc/free · 内存池 · 对象池
分配器内存池
10
字符串优化
std::string底层 · SSO · 字符串拼接 · 自定义字符串
字符串SSO
11
容器选择与优化
vector/list/deque · reserve · emplace_back · 自定义分配器
容器STL
12
智能指针与RAII
unique/shared/weak_ptr · 自定义删除器 · RAII
智能指针RAII
13
移动语义与完美转发
移动构造/赋值 · std::move/forward · RVO/NRVO
移动语义转发
14
异常处理与性能
异常开销 · 异常安全 · noexcept · 错误码 vs 异常
异常noexcept
15
多线程性能优化
线程池 · 互斥锁/读写锁/自旋锁 · 无锁编程入门
多线程锁
16
原子操作与内存序
std::atomic · memory_order · CAS · 无锁数据结构
原子内存序
17
并发数据结构
无锁队列/栈 · 读写分离 · RCU
无锁RCU
18
性能分析工具
perf · gprof · Valgrind · Callgrind · 火焰图
perf火焰图
19
编译器属性与优化
always_inline · __restrict · __builtin_expect · alignas
属性GCC
20
PGO (性能引导优化)
PGO原理 · 使用流程 · 实战案例
PGO优化
21
LTO (链接时优化)
LTO原理 · 优势与劣势 · 使用配置
LTO链接
22
虚函数与多态优化
vtable原理 · 虚函数开销 · CRTP · std::variant
虚函数CRTP
23
模板元编程优化
编译期计算 · 类型萃取 · SFINAE · constexpr
模板元编程
24
constexpr与编译期计算
constexpr函数/变量 · 编译期字符串 · 编译期哈希
constexpr编译期
25
数据驱动设计
数据导向(DOD) · SoA vs AoS · 热/冷数据分离
DOD数据驱动
26
SIMD与向量化
自动/手动向量化 · SIMD指令集 · 数据对齐
SIMD向量化
27
内存屏障与缓存一致性
内存屏障 · MESI协议 · 写合并与写缓冲
屏障MESI
28
NUMA架构优化
NUMA原理 · 内存/线程亲和性 · numactl
NUMA亲和性
29
实时系统与低延迟优化
实时要求 · 中断优化 · 优先级反转 · 内存预分配
实时低延迟
30
综合实战
高性能日志系统 · 内存池 · 网络框架优化
实战综合