×

xxHash极快的哈希算法

消耗积分:2 | 格式:zip | 大小:0.00 MB | 2022-06-16

分享资料个

授权协议 BSD
开发语言 C/C++
操作系统 跨平台
软件类型 开源软件
所属分类 程序开发常用工具包

软件简介

xxHash 是一种极快的哈希算法,在 RAM 速度限制下运行。它成功完成了 SMHasher 测试套件,该套件评估了哈希函数的碰撞、分散和随机性质量。代码具有高度的可移植性,所有平台上的哈希值都相同(little / big endian)。

它有四种版本(XXH32、XXH64、XXH3_64bits和XXH3_128bits)。最新的变体,XXH3,提供了全面的性能改进,特别是在小数据上。

参考系统使用英特尔 i7-9700K cpu,并运行 Ubuntu x64 20.04。开源基准测试程序是用 clang v10.0编 译的,使用- O3flag。

Hash Name Width Bandwidth (GB/s) Small Data Velocity Quality Comment
XXH3 (SSE2) 64 31.5 GB/s 133.1 10  
XXH128 (SSE2) 128 29.6 GB/s 118.1 10  
RAM sequential read N/A 28.0 GB/s N/A N/A for reference
City64 64 22.0 GB/s 76.6 10  
T1ha2 64 22.0 GB/s 99.0 9 Slightly worse collisions
City128 128 21.7 GB/s 57.7 10  
XXH64 64 19.4 GB/s 71.0 10  
SpookyHash 64 19.3 GB/s 53.2 10  
Mum 64 18.0 GB/s 67.0 9 Slightly worse collisions
XXH32 32 9.7 GB/s 71.9 10  
City32 32 9.1 GB/s 66.0 10  
Murmur3 32 3.9 GB/s 56.1 10  
SipHash 64 3.0 GB/s 43.2 10  
FNV64 64 1.2 GB/s 62.7 5 Poor avalanche properties
Blake2 256 1.1 GB/s 5.1 10 Cryptographic
SHA1 160 0.8 GB/s 5.6 10 Cryptographic but broken
MD5 128 0.6 GB/s 7.8 10 Cryptographic but broken

XXH3 专为在长输入和小输入上都具有出色的性能而设计,如下图所示:

poYBAGKoB5iAJTzEAAd9wdoEo7A932.png

xxHash已经用Austin Appleby的优秀的SMHasher测试套件进行了测试,并通过了所有测试,确保了合理的质量水平。它还通过了SMHasher较新分叉的扩展测试,具有额外的场景和条件。

最后,xxHash提供了自己的大规模碰撞测试器,能够生成并比较数十亿的哈希值,以测试64位哈希算法的极限。在这方面,xxHash也具有良好的结果,与生日悖论一致。更详细的分析记录在 wiki 中

 

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !