python的fnv哈希扩展

来源:互联网 发布:嘉实优化红利混合定投 编辑:程序博客网 时间:2024/05/19 20:01

自己写一个python的fnv哈希的扩展,文件名fnv_module.c

 

 

编译

 

 

调用方法

 

测试了一下速度,50万次hash计算

 

平均3微秒一次,速度还算可以。

 

在fnv_module.c中PyLong_FromUnsignedLong(hash)那行,我原先用的是Py_BuildValue("i", hash)返回的数值老出现负值。

在google上搜一下,找到PyLong_FromUnsignedLong函数,它可以接受一个unsigned类型的整数,返回也是一个unsigned类型整数。

替换之后,完全正确。

 

附:fnv哈希的纯Python实现,只是效率太低,50万次计算hash需要32秒。

是c模块实现的效率的5%不到

 

 

原创粉丝点击