我终于得到了cython工作,感谢stackoverflow上的一些人,但现在有一个问题.从我不使用cdef到使用cdef时,确实没有速度增加.当我使用cython编译python代码时,不要误会我有一个非常明显的速度增加,但是当我使用cdef时并不是这样.
这是代码区域正在减慢程序的其余部分:
def tupdate(self,surf):
cdef int x
cdef int y
for x in xrange(self.w):
for y in xrange(self.h):
if self.map[(x,y)].y <= 600 and self.map[(x,y)].y >= -50: self.map[(x,y)].FLAG = 1
else: self.map[(x,y)].FLAG = 0
self.map[(x,y)].y += self.speed
if self.map[(x,y)].FLAG:
self.map[(x,y)].rect = ((self.map[(x,y)].x,self.map[(x,y)].y),(50,25))
self.map[(x,y)].update()
self.map[(x,y)].render(surf)
Run Code Online (Sandbox Code Playgroud)
这个代码应该每秒被调用60次,但由于代码的速度和我的旧硬件只能被调用大约每秒30次,我认为使用cdef这样强烈使用的变量如x和y会有所帮助.但是fde在cdef之前和之后都是一样的.
我使用的是32位python 2.7的Windows 7 64位