这是我的基本问题:
我有一个导入的Python文件
from math import sin,cos,sqrt
Run Code Online (Sandbox Code Playgroud)
我需要这个文件仍然是100%CPython兼容,以允许我的开发人员编写100%CPython代码并使用为Python开发的伟大工具.
现在进入Cython.在我的Python文件中,trig函数被调用数百万次(代码的基础,不能改变它).有没有办法通过主python文件中的一些Python-fu,或Cython魔术,否则我可以改为使用C/C++数学函数使用Cython代码的一些变体
cdef extern from "math.h":
double sin(double)
Run Code Online (Sandbox Code Playgroud)
这会给我近乎C的性能,这将是非常棒的.
斯特凡的谈话具体说明不能做到这一点,但谈话已经两年了,那里有很多有创意的人
我不是 Cython 专家,但据我所知,您所能做的就是编写一个 Cython 包装器sin并调用它。不过,我无法想象这真的会比 更快math.sin,因为它仍然使用 Python 调用语义——开销在于调用函数的所有 Python 内容,而不是实际的三角计算,后者在使用时在 C 中完成CPython 也是如此。
您是否考虑过使用Cython 纯模式,这使得源代码与 CPython 兼容?
| 归档时间: |
|
| 查看次数: |
3757 次 |
| 最近记录: |