Perl的完美哈希函数(如gperf)?
发布时间:2020-12-16 06:20:44 所属栏目:大数据 来源:网络整理
导读:我将使用一个键:值存储,并希望在Perl中创建不可碰撞的哈希.是否有一个Perl模块或函数,我可以用来生成一个不可碰撞的哈希函数或表(可能像 gperf)?我已经知道我的输入值范围了. 解决方法 我找不到纯粹的Perl解决方案,最接近的是 Reini Urban’s examinations
我将使用一个键:值存储,并希望在Perl中创建不可碰撞的哈希.是否有一个Perl模块或函数,我可以用来生成一个不可碰撞的哈希函数或表(可能像
gperf)?我已经知道我的输入值范围了.
解决方法
我找不到纯粹的Perl解决方案,最接近的是
Reini Urban’s examinations of using perfect hashes with a type system.如果你是在XS中做的话,CMPH (C Minimal Perfect Hashing Library)可能比gperf更合适. CMPH似乎针对非平凡密钥大小和运行时生成进行了优化.
在Perl中运行时生成完美哈希函数的成本可能会淹没使用它的价值.为了获得好处,您需要编译和缓存它.因此,编写一个在XS编译时从固定键列表生成函数的XS模块可能是最好的方法. 出于好奇,您的数据有多大以及该集合包含多少个键? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |