📘 多核调试·性能优化
🧩 30 章 · 实战精讲
v2.0
01
多核系统概述:为什么需要多核?多核架构基础(SMP与AMP)、多核编程的挑战与机遇。
🏛️ 基础概念 · 架构对比
02
多核调试环境搭建:硬件调试器(JTAG/SWD)配置、多核仿真器设置、GDB多核调试扩展。
🔧 环境 · 调试器
03
多核同步原语:原子操作、自旋锁、互斥锁、读写锁、屏障(Barrier)的实现与选择。
🔒 同步 · 锁原语
04
多核内存模型:缓存一致性协议(MESI)、内存屏障指令、volatile关键字、C11/C++11内存模型。
🧠 内存模型 · 一致性
05
多核任务调度:任务划分策略(静态/动态)、负载均衡算法、线程亲和性(CPU Affinity)设置。
📊 调度 · 亲和性
06
多核死锁与活锁:死锁产生的四个必要条件、死锁检测与恢复、活锁与饥饿的避免策略。
⚠️ 死锁 · 活锁
07
多核性能分析工具:Linux Perf、Intel VTune、ARM Streamline、gprof的使用与解读。
📈 性能工具
08
多核热点识别:热点函数定位、伪共享(False Sharing)检测、缓存行对齐优化。
🔥 热点 · 伪共享
09
多核并行算法设计:分治策略、流水线并行、数据并行、任务并行模式。
⚙️ 并行模式
10
多核锁优化:锁粒度细化、读写锁优化、无锁编程(Lock-Free)入门、RCU机制。
🔓 锁优化 · RCU
11
多核内存优化:内存分配器(tcmalloc/jemalloc)、NUMA感知编程、大页内存使用。
💾 内存 · NUMA
12
多核中断处理:中断负载均衡(IRQ Affinity)、中断线程化、下半部机制(Softirq/Tasklet)。
⏰ 中断 · 下半部
13
多核网络优化:RSS(Receive Side Scaling)、RPS(Receive Packet Steering)、XDP(eXpress Data Path)。
🌐 网络 · 高速路径
14
多核存储优化:多核文件系统并发、IO栈优化、异步IO(AIO/io_uring)在多核下的应用。
💽 存储 · 异步IO
15
多核虚拟化优化:vCPU调度、NUMA感知虚拟化、PCIe直通与SR-IOV。
🖥️ 虚拟化 · 直通
16
多核调试技巧:条件断点、观察点、多核Trace(ftrace/LTTng)、Core Dump分析。
🐞 调试 · Trace
17
多核竞态条件调试:Data Race检测(ThreadSanitizer)、Helgrind工具使用、静态分析。
🏁 竞态 · 检测
18
多核性能基准测试:Benchmark设计原则、多核加速比(Amdahl定律)、可扩展性分析。
📊 基准 · 加速比
19
多核功耗优化:DVFS(动态电压频率调整)、Idle状态管理、功耗感知调度。
🔋 功耗 · DVFS
20
多核实时系统:实时调度策略(SCHED_FIFO/SCHED_RR)、优先级反转、资源锁协议(SRP/PCP)。
⏱️ 实时 · 调度
21
多核GPU协同:CPU-GPU异构计算、CUDA/OpenCL多流并发、GPU内存管理。
🎮 GPU · 异构
22
多核DSP优化:多核DSP架构特点、DSP内存层次优化、DSP指令级并行。
🎛️ DSP · 指令并行
23
多核FPGA协同:FPGA加速器与CPU交互、AXI总线优化、多核FPGA设计模式。
🔲 FPGA · 协同
24
多核容器优化:容器CPU绑定、cgroup CPU管理、Kubernetes多核调度策略。
🐳 容器 · cgroup
25
多核数据库优化:数据库并发控制、MVCC在多核下的实现、并行查询执行。
🗄️ 数据库 · MVCC
26
多核机器学习优化:模型并行与数据并行、分布式训练同步策略、AllReduce算法。
🤖 机器学习 · 并行
27
多核调试实战案例一:多核死锁问题定位与修复(附完整代码)。
🛠️ 实战 · 死锁修复
28
多核调试实战案例二:伪共享导致性能下降的排查与优化(附完整代码)。
🛠️ 实战 · 伪共享
29
多核调试实战案例三:锁竞争导致扩展性瓶颈的优化(附完整代码)。
🛠️ 实战 · 锁竞争
30
多核系统综合优化:从硬件选型到软件调优的全链路方法论、未来趋势(Chiplet/存算一体)。
🚀 综合 · 未来趋势