news 2026/5/16 16:30:39

xxHash vs MurmurHash3:非加密哈希的王者之争

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
xxHash vs MurmurHash3:非加密哈希的王者之争

背景

长久以来,MD5 这个名字几乎成了“文件校验”的代名词。然而,在非加密哈希领域,更为现代的xxHash128和MurmurHash3都是顶尖算法,但它们在设计哲学、性能特征和适用场景上各有侧重。下来我们简单介绍两个算法的差异,然后实际上手测试比较。

核心对比

特性维度

xxHash (XXH3)

MurmurHash3

设计理念

大块数据现代CPU优化

短键哈希表优化

诞生时间

2019年(XXH3)

2011年

性能焦点

极致吞吐量,特别是>1KB数据

优异的随机分布,均衡性能

速度(现代CPU)

极快

较快

小数据性能

良好

优秀

随机分布质量

良好

极好

硬件优化

深度SIMD优化(AVX2等)

少量SIMD使用

可移植性

需考虑SIMD支持

高度可移植

社区采用

快速增长

RocksDB、ClickHouse等

广泛

Redis、Spark、Cassandra等

键值测试

无论是在数据库键值存储、数据键去重、分布式系统还是机器学习中,mmh3 均能发挥其强大的作用。

大块测试

本次测试的 cpu 是 Intel(R) Xeon(R) Silver 4214 CPU @ 2.20GHz,测试数据为 os.urandom() 生成内存数据。加入MD5作为基准,分别测试4KB、8KB、64KB、256KB、1MB、10MB、100MB的哈希计算耗时

数据大小

MD5耗时

单位 ms

mmh3-128

单位 ms

xxHash128耗时

单位 ms

说明

1KB

0.008

1.800

0.004

4KB

0.014

1.791

0.004

16KB

0.036

1.798

0.006

32KB

0.067

1.813

0.008

64KB

0.136

1.809

0.012

256KB

0.498

1.872

0.038

1MB

1.961

2.036

0.139

10MB

19.465

4.178

1.379

100MB

194.403

23.938

14.794

从测试可以看出,xxHash128 在1KB以及以上的数据大小上都表现最优,特别是对于大数据量,优势极为明显。实际测试上,xxHash128 比 MD5 能快 10 倍以上,在大块数据表现上是绝对的哈希王者。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/8 23:34:15

【剑指Offer】026. 重排链表

给定一个单链表 L 的头节点 head ,单链表 L 表示为:L0 → L1 → … → Ln-1 → Ln 请将其重新排列后变为:L0 → Ln → L1 → Ln-1 → L2 → Ln-2 → …不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。/*** Definit…

作者头像 李华
网站建设 2026/5/15 10:12:53

Shiro漏洞利用工具,更新V0.2!

工具介绍 Shiro漏洞利用工具,更新ShiroEXP V0.2工具功能 爆破key及加密方式(已完成)漏洞探测(已完成Shiro550 URLDNS探测)探测回显链(已完成CB1TomcatEcho、Spring、AllEcho回显链)漏洞利用(已完成命令执行、Shell模式)注入内存马(支持蚁剑、冰蝎、哥斯拉等filter、…

作者头像 李华