Google SwissTable 原理:SIMD 加速哈希表
Google SwissTable 原理:控制字节 + SSE2 16 路并行探测如何取代 std::unordered_map,从位级设计到 Abseil flat_hash_map 的工程实现。
发布来自土法炼钢兴趣小组的知识、笔记、进展和应用。主题包括数据结构和算法、编程语言、网络安全、密码学等。
共 2 篇文章 · 返回首页
Google SwissTable 原理:控制字节 + SSE2 16 路并行探测如何取代 std::unordered_map,从位级设计到 Abseil flat_hash_map 的工程实现。
Go 的 map 用的是什么哈希表?Rust 的 HashMap 呢?Python 的 dict 呢?它们分别选了三条完全不同的路线——链式哈希、Swiss Table、开放寻址。选择背后的 trade-off 远比你想象的深。本文从冲突解决到 SIMD 加速,再到当前环境可复现的 benchmark,用 C 代码和真实数据讲透哈希表的内部实现。