我正在努力将最初用C编写的python模块使用python重写为Cython.The模块,同时也使用NumPy。该项目的一个主要挑战是保持当前模块的速度,而且它也应该适用于所有的Numpy数据类型。我正在考虑使用融合数据类型使其成为通用的,但我担心它对性能的瓶颈影响。是否还有其他技术可以替代融合类型,以实现速度和通用代码。
发布于 2015-03-25 19:32:23
忽略ali_m关于你是否真的测量了你的性能问题的完全正确的评论.
http://docs.cython.org/src/userguide/fusedtypes.html#selecting-specializations
对于从Cython调用的cdef或cpdef函数来说,这意味着专门化是在编译时计算出来的。对于def函数,参数在运行时被键入,并且执行一种最佳的方法来确定需要哪种专门化。
本质上,如果您是从Cython调用的,应该没有问题--单独的函数是在没有开销的情况下生成和使用的。如果您是从Python调用的,显然它必须停止并考虑调用哪一个。
但是,在担心之前,先衡量一下你的表现!(阅读手册,很清楚地回答了你的问题。)
https://stackoverflow.com/questions/29256582
复制相似问题