为什么需要缓存?从寄存器到硬盘的层级结构,局部性原理。
Cache Line、命中与缺失、直接映射与组相联。
MESI协议详解,False Sharing问题。
循环展开(Loop Unrolling)的原理与代价。
循环交换(Loop Interchange)与数据布局。
结构体拆分(Struct Splitting)与字段重排。
数组合并(Array Merging)与数组填充(Array Padding)。
条件分支预测与无分支代码(Branchless Code)。
无锁数据结构与缓存行填充(Cache Line Padding)。
基于性能剖析的优化(Profile-Guided Optimization)。
循环的软件流水技术(Software Pipelining)。
Perf、Valgrind、Cachegrind的使用。
优化一个矩阵乘法从10 GFLOPS到50 GFLOPS。