SwissTable 比 std::unordered_map 快一个数量级,核心是它用一条 SIMD 指令同时比 16 个槽的 7-bit 指纹
“hash map 慢是因为 hash 函数不够好”——这句话被说了十年,但它是错的。你可以把 hash 函数从std::hash换成 wyhash、xxHash、甚至用密码学级的 SipHash,std::unordered_map的 find 延迟不会有数量级变化。瓶颈不在 hash 的质量,在 hash 之后的事:每次查找至少追两个指针(桶数组→链表节点→key),每个指针都是一次几乎必然的 cache miss。abseil 的flat_hash_map换了一种做法。它把每个槽的 hash 值拆出高 7 位,存进一个独立的、连续的控制字节数组(control bytes)。查找时,先用一条 SSE2 指令_mm_cmpeq_epi8把目标指纹广播到 128-bit 寄存器里,和 16 个控制字节同时比较——一次 SIMD 操作过滤 16 个槽,只有指纹匹配的槽(期望不到 0.11 个)才会去碰真正的 key。Matt Kulukundis 在 CppCon 2017 公开这个设计后,Google 在整个代码库里把unordered_map替换成flat_hash_map,取得了可测量的全舰队 CPU 使用率下降。此后 Rust 标准库(hashbrown, 2019)、Boost.Unordered(2022)、Go 1.24(2025)先后采用同一设计。这篇文章拆开这个设计的每一层:从unordered_map的内存布局讲起,到控制字节的位编码、SIMD 探测循环、三角数步长的数论证明、tombstone 的代价,最后讲

相关新闻

RAG系列:#6 一文搞懂RAG存储技术:文件、元数据、切片、向量

RAG系列:#6 一文搞懂RAG存储技术:文件、元数据、切片、向量

切片存储:为适配 LLM 输入长度,切割生成的文件文本片段 向量存储:切片经 Embedding 模型转化而成的高维向量,用于相似度检索 单看数据关联逻,四层数据的绑定关系是通过全局唯一 ID 实现的:原始文件的 ID…

2026/6/29 20:57:14阅读更多 →
百度网盘秒传转存终极指南:3分钟掌握全平台快速分享技巧

百度网盘秒传转存终极指南:3分钟掌握全平台快速分享技巧

百度网盘秒传转存终极指南:3分钟掌握全平台快速分享技巧 【免费下载链接】baidupan-rapidupload 百度网盘秒传链接转存/生成/转换 网页工具 (全平台可用) 项目地址: https://gitcode.com/gh_mirrors/bai/baidupan-rapidupload 百度网盘秒传转存工具是一款让你…

2026/6/29 20:46:47阅读更多 →
FanControl终极指南:三步搞定Windows风扇智能控制

FanControl终极指南:三步搞定Windows风扇智能控制

FanControl终极指南:三步搞定Windows风扇智能控制 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending/fa/Fan…

2026/6/29 20:46:47阅读更多 →
Java毕业设计-基于 Spring Boot 的电影售票系统的设计与实现 基于 Spring Boot 的影院售票管理系统设计与开发(源码+LW+部署文档+全bao+远程调试+代码讲解等)

Java毕业设计-基于 Spring Boot 的电影售票系统的设计与实现 基于 Spring Boot 的影院售票管理系统设计与开发(源码+LW+部署文档+全bao+远程调试+代码讲解等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/6/29 21:57:34阅读更多 →
仅限首批200名Go工程师获取:ChatGPT Go SDK v0.8.0内部预览版+32页《生产环境熔断降级配置清单》

仅限首批200名Go工程师获取:ChatGPT Go SDK v0.8.0内部预览版+32页《生产环境熔断降级配置清单》

更多请点击: https://intelliparadigm.com 第一章:ChatGPT Go SDK v0.8.0内部预览版发布说明 ChatGPT Go SDK v0.8.0 内部预览版现已正式发布,面向早期采用者与企业客户开放试用。该版本聚焦于稳定性增强、API 调用链路可观测性提升以及对 O…

2026/6/29 21:57:34阅读更多 →
Spring Boot → Solon 注解迁移实战指南:一张对照表说清楚

Spring Boot → Solon 注解迁移实战指南:一张对照表说清楚

一、写在前面如果你会 Spring Boot,那你已经会了一大半 Solon。Solon 不是 Spring 的分支或封装,它是独立发展的全栈应用开发框架。但在设计哲学上,Solon 遵循了 Java 主流的 IoC、AOP、MVC 范式——概念相同,注解名不同。这篇文章…

2026/6/29 21:57:34阅读更多 →
鸿蒙原生 ArkTS 布局方式之 RelativeContainer 实现自适应布局

鸿蒙原生 ArkTS 布局方式之 RelativeContainer 实现自适应布局

鸿蒙原生 ArkTS 布局方式之 RelativeContainer 实现自适应布局HarmonyOS NEXT API Version 24 深度解析 RelativeContainer 的锚点体系与自适应布局实践一、引言 在鸿蒙原生应用开发中,布局是 UI 构建的核心。HarmonyOS NEXT 提供了多种布局容器,其中 R…

2026/6/29 21:57:34阅读更多 →
基于Matlab与STM32的串口数据可视化调试:从算法仿真到硬件验证

基于Matlab与STM32的串口数据可视化调试:从算法仿真到硬件验证

1. 为什么需要Matlab与STM32联合调试? 做嵌入式开发的朋友应该都遇到过这样的场景:我们在STM32上实现了一个数字信号处理算法,比如FFT变换或者滤波器设计,代码编译通过了,也能正常运行,但输出的结果总感觉哪…

2026/6/29 21:57:34阅读更多 →
ADBKeyBoard终极指南:3分钟掌握Android自动化输入神器

ADBKeyBoard终极指南:3分钟掌握Android自动化输入神器

ADBKeyBoard终极指南:3分钟掌握Android自动化输入神器 【免费下载链接】ADBKeyBoard Android Virtual Keyboard Input via ADB (Useful for Test Automation) 项目地址: https://gitcode.com/gh_mirrors/ad/ADBKeyBoard ADBKeyBoard是一款专为Android自动化测…

2026/6/29 21:52:31阅读更多 →
AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

6个月前的2025年12月,Boris Cherny 公开宣布自己卸载了 IDE。一时间,Vibe Coding 成了全行业最热的话题。6个月后,当我们回过头来拉一份真实账本,发现事情远没有"一句话生成一个App"那么浪漫。本文从产品经理和研发两个…

2026/6/29 3:27:55阅读更多 →
审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

引言:审计结束三个月了,审计员的权限还没关某城商行每年按照监管要求开展至少一次数据安全审计。审计期间,内审部门需要抽样检查各类业务数据——交易流水、客户信息、员工操作日志、权限配置记录。这些数据分布在不同系统中,审计…

2026/6/29 2:19:08阅读更多 →
如何在3秒内从普通图片生成专业级法线贴图:DeepBump的终极指南

如何在3秒内从普通图片生成专业级法线贴图:DeepBump的终极指南

如何在3秒内从普通图片生成专业级法线贴图:DeepBump的终极指南 【免费下载链接】DeepBump Normal & height maps generation from single pictures 项目地址: https://gitcode.com/gh_mirrors/de/DeepBump 还在为3D建模中的纹理制作而烦恼吗?…

2026/6/29 0:01:47阅读更多 →
OCAuxiliaryTools:终极OpenCore配置工具,让黑苹果安装从未如此简单!

OCAuxiliaryTools:终极OpenCore配置工具,让黑苹果安装从未如此简单!

OCAuxiliaryTools:终极OpenCore配置工具,让黑苹果安装从未如此简单! 【免费下载链接】OCAuxiliaryTools Cross-platform GUI management tools for OpenCore(OCAT) 项目地址: https://gitcode.com/gh_mirrors/oc/OCA…

2026/6/29 0:01:47阅读更多 →
终极Windows 11精简指南:使用tiny11builder快速创建纯净系统镜像

终极Windows 11精简指南:使用tiny11builder快速创建纯净系统镜像

终极Windows 11精简指南:使用tiny11builder快速创建纯净系统镜像 【免费下载链接】tiny11builder Scripts to build a trimmed-down Windows 11 image. 项目地址: https://gitcode.com/GitHub_Trending/ti/tiny11builder 你是否厌倦了Windows 11系统自带的20…

2026/6/29 0:01:47阅读更多 →