Skip to content

内存与性能专题(HPC 核心)

HPC/AI Infra 面试里,「性能」绝不是锦上添花,而是主考点。考的往往是:缓存与访存模型、假共享、内存分配器、对齐、locality of reference、profiling 手段。

问题清单(自测)

  1. 什么是 cache line?缓存层级 L1/L2/L3 大小延迟?(现代 x86 常识数值)
  2. 为什么「遍历方向」影响这么大(行优先 vs 列优先、cache miss)?
  3. 假共享 false sharing 是什么、怎么查/消除?(也见并发篇)
  4. 内存池/对象池/自定义 allocator:什么时候值得写?SSO/小对象优化?
  5. new 慢在哪?jemalloc/tcmalloc 比 glibc malloc 好在哪里?
  6. 对齐 alignas(64)、padding,为什么 HPC 大量 alignas
  7. cache blocking / tiling 与矩阵乘法性能的关系?
  8. 如何 profiling?perf / valgrind/cachegrind / vtune;火焰图;统计 cache miss、branch miss。
  9. 减少堆分配次数的手法(复用 buffer、monotonic arena、小缓冲 + move)。

子文档

文件内容
index.md本总览
cache-model.md缓存层级、局部性、cache line、写策略
allocator-pool.md内存池、对象池、arena、自定义 allocator、tcmalloc/jemalloc
perf-bottlenecks.md常见性能瓶颈与 profiling 工具
data-layout.mdSoA/AoS、缓存块计算、对齐与 padding

C++ 面试八股 · VitePress 版