【发布时间】:2018-02-22 15:24:02
【问题描述】:
在 Cython 中,有没有办法实现条件的编译时评估?例如像
def func(bint value):
cdef int i
for i in range(1000000):
# Some stuff is calculated
if value:
# Do something...
else:
# Do something else...
有没有办法告诉 Cython 创建两个版本的函数,一个用于value==True,一个用于value==False?否则,在每次循环迭代中对 if 语句的评估可能会产生可衡量的性能成本。
【问题讨论】:
-
Cython 有
IF和DEF在编译时选择代码(例如 stackoverflow.com/questions/47276648/…),但我认为这不是你所追求的。 -
这是一种好的 C 编译器可能会自行完成的优化
标签: cython