我在Cython应用程序堆栈的底部有一个函数,该函数接受特定类或其子类的Python对象,并为其序列化表示形式创建SHA1哈希。
我知道这些方面的东西已经非常优化:
import hashlib
import pickle
def _hash(obj):
return hashlib.sha1(pickle.dumps(obj)).digest()
因此,从Cython获益不多。但是,此后必须使用二进制哈希数据(数据对象没有被多次使用,但是哈希函数被大量调用),我想避免将其包装在Python对象中。
我可以吗
a)尝试将C API用于这些stdlib函数(不确定是否可以做到或什至有意义)
b)使用cdef
函数并键入输出(我可以内联吗?如果输入是Python对象,我想不是)
c)随我所住?
谢谢。