bew*_*man 2 python numpy cython scipy python-c-api
我正在使用python-C api重写一个最初用C编写的python模块到Cython.模块也使用NumPy.该项目的一个主要挑战是保持模块的当前速度,并且它应该适用于所有Numpy数据类型.我想使用融合数据类型使其通用但我担心,因为它对性能的瓶颈影响.有没有其他技术可以用来代替融合类型,我可以使用它来实现速度和通用代码.
忽略ali_m完全有效的评论,关于你是否真的测量过你的性能问题......
http://docs.cython.org/src/userguide/fusedtypes.html#selecting-specializations
"对于从Cython调用的cdef或cpdef函数,这意味着在编译时计算出特殊化.对于def函数,在运行时对参数进行类型检查,并且执行尽力而为的方法来确定需要哪种特化."
从本质上讲,如果你从Cython调用应该没有问题 - 生成和使用单独的函数而没有开销.如果您使用Python进行调用,显然必须停下来思考要调用哪一个.
但在担心它之前测量你的表现!(并阅读手册,它非常清楚地回答了你的问题.)