2024-09-27 00:18:02 发布
网友
使用cython -a,我发现for i in range(0, a, b)语句作为python循环运行(在cython -ahtml输出中是非常黄的一行)。i、a和{}被cdef-ed为int64_t。在
cython -a
for i in range(0, a, b)
i
a
cdef
int64_t
然后我尝试了“旧”语法for i from 0 <= i < b by a。从cython -a的输出来看,它似乎编译得非常理想。在
for i from 0 <= i < b by a
范围(0,a,b)在这里没有被优化,或者这是与实现绑定在一起的预期行为吗?在
Automatic range conversion仅在cython可以在编译时确定步骤的符号时应用。由于本例中的步骤是有符号类型,因此无法返回python循环。在
请注意,当前即使类型是unsigned cython仍然返回到python循环中,这是一个(相当古老的)杰出的进一步优化,编译器可以做但没有。请查看此票证以了解更多信息:
http://trac.cython.org/ticket/546
Automatic range conversion仅在cython可以在编译时确定步骤的符号时应用。由于本例中的步骤是有符号类型,因此无法返回python循环。在
请注意,当前即使类型是unsigned cython仍然返回到python循环中,这是一个(相当古老的)杰出的进一步优化,编译器可以做但没有。请查看此票证以了解更多信息:
http://trac.cython.org/ticket/546
相关问题 更多 >
编程相关推荐