当前位置:首页 > 报告详情

吴晓飞_高性能CC++系统性能优化 从理论到实践.pdf

上传人: 柒柒 编号:1268174 2026-06-13 44页 6.25MB

1、高性能高性能C/C+C/C+系统性能优化:从理论到实践系统性能优化:从理论到实践PolarDBPolarDB TPCCTPCC登顶性能优化登顶性能优化阿里云RDS MySQL内核负责人吴晓飞目 录CONTENTS1.性能优化的理论支持2.性能分析的工具支持3.性能优化实战以PolarDB TPCC为例性能优化的理论支持1.学会“抓重点”Amdahl定律(Amdahls Law)系统整体加速受限于不可并行部分的比例S=1 1 +其中 是可并行部分比例,是并行资源数量。a、提升可并行区并行度及并行效率,将资源尽可能充分利用b、降低串行区比例,减少系统瓶颈区性能优化的理论支持1.学会“抓重点”90/

2、10 法则 程序 90%的时间可能花在 10%的代码上。a、应当执行“测量先行,再优化”策略,避免过早优化b、优化应当着眼于“热点(hot)”路径性能优化的理论支持2.清楚硬件的底层逻辑 Memory Hierarchy CPU 缓存 内存 (磁盘/网络)“越靠近 CPU 的存储越快、越小、越贵;越远离 CPU 的存储越慢、越大、越便宜”层级典型延迟(Latency)带宽(Bandwidth)容量对程序优化的影响寄存器(Registers)0 cycles极高几十几百字节编译器自动优化,尽量让热点变量驻留寄存器L1 Cache14 ns(14 cycles 3GHz)150 GB/s64-51

3、2 KB/core数据局部性、对齐、避免 false sharingL2 Cache10 ns50100 GB/s256 KB16 MB/core预取、循环展开、减少跨 cache line 访问L3 Cache(共享)2050 ns4080 GB/s8512 MB(多核共享)多线程数据布局避免争用主存(DRAM)60120 ns2060 GB/s(DDR4/5)GB 级避免频繁分配/释放、使用内存池SSD(NVMe)10100 s18 GB/sTB 级I/O 是瓶颈时,需异步、多线程、批量、提升缓存性能优化的理论支持2.清楚硬件的底层逻辑 Memory Hierarchy CPU 缓存 内存

4、 (磁盘/网络)每个核心有有限寄存器(如 x86-64 有 16 个通用寄存器)。指令流水线(Pipeline)、超标量(Superscalar)、乱序执行(OoO)提升吞吐。批量指令向量化(SIMD)执行小循环、简单计算更容易被完全寄存器化。避免过多局部变量或复杂控制流阻碍寄存器分配。大部分依赖编译器、优化器进行底层优化(Compiler、LTO、PGO)性能优化的理论支持2.清楚硬件的底层逻辑 Memory Hierarchy CPU 缓存 内存 (磁盘/网络)缓存行(Cache Line):常 64 字节,一次加载整 cache line。缓存未命中(Miss)类型:Cold Miss(

5、首次访问)Capacity Miss(容量不足)Conflict Miss(映射冲突)写策略:Write-Through vs Write-Back(常见)。伪共享(False Sharing):不同线程修改同一 cache line 中不同变量 频繁无效化 性能下降。多线程性能优化的核心战场,提升局部性、降低冲突性、结构体优化等等。性能优化的理论支持2.清楚硬件的底层逻辑 Memory Hierarchy CPU 缓存 内存 (磁盘/网络)DRAM 访问非均匀(NUMA 架构下,远程内存更慢)。内存带宽有限,带宽瓶颈常出现在大数据拷贝场景。有效带宽受访问模式影响(顺序 随机)避免不必要的内存

6、拷贝(使用 move 语义、span/view)。使用内存池(Memory Pool)减少 new/delete 开销和碎片。NUMA 感知分配(如 numactl 或 libnuma)。内存通道交错并联,提升吞吐利用率。性能优化的理论支持2.清楚硬件的底层逻辑 Memory Hierarchy CPU 缓存 内存 (磁盘/网络)延迟 vs 吞吐:磁盘/网络以延迟为主导(尤其是小I/O)。SSD 随机读写远优于 HDD,但仍比内存慢数百倍以上。大规模 raid 阵列下吞吐极限高,单不易实现IO 的充分利用和异步化使用异步逻辑,避免在热路径中进行请求。批量多线程处理、考虑压缩、缓存中间结果等。性

word格式文档无特别注明外均可编辑修改,预览文件经过压缩,下载原文更清晰!
三个皮匠报告文库所有资源均是客户上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作商用。
1. **性能优化理论**:基于Amdahl定律和90/10法则,聚焦热点代码和硬件层级(CPU缓存/内存/IO),强调测量先行。 2. **工具支持**:perf、eBPF(bcc/bpftrace)用于动态分析;PolarDB Fast Stack实现低中断堆栈采样(中断时间仅为pstack的1/131);Intel PT提供亚ns级指令追踪。 3. **PolarDB TPCC优化实战**: - 关键路径CPU效率提升40%,后台CPU占用减少5%; - 乐观开表、预编译存储引擎调用减少开销; - PolarIndex消除SMO锁冲突,支持并发; - 复制性能优化:Batch redo解析、多线程并行、Pipeline化。 4. **核心数据**:PolarDB TPCC性能达87.8w tpmc/节点(2025年1月至今最优)。
**优化核心是什么?** **工具有哪些妙用?** **TPCC如何登顶?**
客服
商务合作
小程序
服务号
折叠