HN 精选

CppCon 2017: Matt Kulukundis “Designing a Fast, Efficient, Cache-friendly Hash Table, Step by Step”

CppCon
9 人推荐 · 跨 10 个月 · 2018–2026
算法与数据结构软件性能与系统优化系统编程语言(C/C++、Rust、Go)
CppCon 2017: Matt Kulukundis “Designing a Fast, Efficient, Cache-friendly Hash Table, Step by Step”

中文导读

Matt Kulukundis 详述了 Google 如何从传统的 std::unordered_map 逐步推导出缓存极友好的高性能哈希表 SwissTable。内容涵盖开放寻址法、SIMD 探测加速,以及重构基础数据结构时权衡的工程代价。

为什么 HN 推它

理解 SwissTable 设计原理的权威视频教材。该设计后来直接启发了 Abseil、Rust 标配哈希表以及 Go map 的底层实现。

「顶级技术演讲,把如此底层的硬核概念讲得清晰明了又高度提炼。」HN 网友原话:Excellent talk which explains the concepts really clearly and concisely.
英文原摘要(HackerTube / Claude 整理)

Matt Kulukundis explains how Google designed SwissTable, a fast, cache-friendly hash table, step by step from std::unordered_map. The talk covers open addressing, SIMD probing and the tradeoffs of changing a fundamental data structure.

HN repeatedly cites it as the definitive explanation of SwissTable, the design behind Abseil, Rust's hash map and Go's maps.

HN 上的提及

reference utopcell · 2018-10 · HN 原文
Google presented the SwissTable design more than a year ago in CppCon [1]
reference gopher_protocol · 2019-03 · HN 原文
they explained the reasoning behind their choices in this CppCon talk
rec nwallin · 2019-04 · HN 原文
abseil presentation: It's super interesting.
rec kllrnohj · 2019-08 · HN 原文
There's a good talk about such a dense, flat hash set here
strong_rec nwallin · 2019-10 · HN 原文
(warning, it's an hour. Takes a while to build up, too. Still worth it.)

相关视频