Appearance
内存与性能专题(HPC 核心)
HPC/AI Infra 面试里,「性能」绝不是锦上添花,而是主考点。考的往往是:缓存与访存模型、假共享、内存分配器、对齐、locality of reference、profiling 手段。
问题清单(自测)
- 什么是 cache line?缓存层级 L1/L2/L3 大小延迟?(现代 x86 常识数值)
- 为什么「遍历方向」影响这么大(行优先 vs 列优先、cache miss)?
- 假共享 false sharing 是什么、怎么查/消除?(也见并发篇)
- 内存池/对象池/自定义 allocator:什么时候值得写?SSO/小对象优化?
new慢在哪?jemalloc/tcmalloc 比 glibc malloc 好在哪里?- 对齐
alignas(64)、padding,为什么 HPC 大量alignas? - cache blocking / tiling 与矩阵乘法性能的关系?
- 如何 profiling?perf / valgrind/cachegrind / vtune;火焰图;统计 cache miss、branch miss。
- 减少堆分配次数的手法(复用 buffer、monotonic arena、小缓冲 + move)。
子文档
| 文件 | 内容 |
|---|---|
index.md | 本总览 |
cache-model.md | 缓存层级、局部性、cache line、写策略 |
allocator-pool.md | 内存池、对象池、arena、自定义 allocator、tcmalloc/jemalloc |
perf-bottlenecks.md | 常见性能瓶颈与 profiling 工具 |
data-layout.md | SoA/AoS、缓存块计算、对齐与 padding |