Repolode
rurban

rurban/smhasher

用于测试哈希函数速度与统计质量的基准工具,附带大量实现的对比结果。

Star
2,183
Fork
192
未关闭 Issue
45
最近提交
16天前

这是什么?

SMHasher 是一套哈希函数测试工具,可对大数据块和小键的吞吐速度进行基准测试,测量哈希表查询开销,并运行碰撞计数、偏差、雪崩效应和完整性检查等统计质量测试,用于发现函数输出中的缺陷。

仓库同时提供一张大型对比表,涵盖数百种非加密与加密哈希函数,包括 MurmurHash、xxHash、wyhash、CityHash、FarmHash、SipHash 等。每个条目列出吞吐量、小键每次哈希的时钟周期、哈希表性能、对象大小以及未通过的质量测试项。数据覆盖多种 CPU,从桌面 x86 到 32 位 ARM 手机。

表格之外还附有作者的结论:部分速度很快但质量存在小缺陷的哈希函数在实际哈希表中表现良好,而涉及安全的场景则需要密码学或带密钥的设计。

核心功能

  • 01对大数据块吞吐量和小键哈希的时钟周期开销进行基准测试。
  • 02测量哈希表查找性能与对象大小,便于分析内联效果。
  • 03运行碰撞、偏差、雪崩效应和完整性等统计质量测试。
  • 04提供覆盖多种 CPU 平台、可排序的哈希函数对比表。

适用场景

  • 为哈希表或符号表实现挑选合适的哈希函数。
  • 在采用某个哈希前,对比候选函数的速度与质量。
  • 用既有测试集验证自研哈希函数的实现。
  • 研究哈希速度、碰撞行为与哈希表性能之间的取舍。

使用前须知

  • 许可证不明确(元数据显示为 NOASSERTION,即未明确声明),再利用的条款不清楚。

收录于专题

标签

常见问题

smhasher 是什么?
用于测试哈希函数速度与统计质量的基准工具,附带大量实现的对比结果。 SMHasher 是一套哈希函数测试工具,可对大数据块和小键的吞吐速度进行基准测试,测量哈希表查询开销,并运行碰撞计数、偏差、雪崩效应和完整性检查等统计质量测试,用于发现函数输出中的缺陷。
smhasher 可以免费使用吗?用的什么许可证?
smhasher 以 Other 许可证开源。用于商业产品前,请先确认许可证条款。
smhasher 还在维护吗?
活跃维护中。smhasher 最近一次提交是在 2026年10月22日。
smhasher 适合用来做什么?
为哈希表或符号表实现挑选合适的哈希函数。 在采用某个哈希前,对比候选函数的速度与质量。 用既有测试集验证自研哈希函数的实现。 研究哈希速度、碰撞行为与哈希表性能之间的取舍。
在哪里获取 smhasher?
源代码和安装说明在 GitHub 上:https://github.com/rurban/smhasher

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目

一个极快的非加密哈希算法 C 库,可在各平台生成一致的 32/64/128 位哈希值。

开发者工具#hash-function#checksum#non-cryptographic
1.1万+14 本周946COther维护活跃更新于 9天前