Hasty Briefsbeta

双语

How much slower is random access, really?

a year ago
  • #memory-access
  • #benchmarking
  • #performance
  • 随机访问性能受缓存局部性影响显著,顺序访问(从头到尾)比随机访问更快
  • 当数组超过L3缓存大小时(约100万元素),性能差异开始显现
  • 在MacBook上顺序访问平均每个元素耗时1纳秒,Linux桌面电脑约0.5纳秒
  • 对于超出L3缓存但仍在内存容量的数组,随机访问在MacBook上慢4倍,Linux上慢8-16倍
  • 当数组超过内存容量时性能急剧下降,Linux上随机访问比顺序访问慢50倍
  • Fisher-Yates洗牌算法对大数据集效率低下,推荐使用两遍洗牌法
  • 内存映射文件对大型数据集没有显著性能提升,macOS和Linux表现存在差异
  • 直接文件读取可能比内存映射更高效,在Linux系统上尤其明显