마침내 cython이 stackoverflow에서 사람들의 덕택으로 일해 왔지만 지금은 문제가 있습니다. 실제로는 cdef를 사용하지 않을 때부터 cdef를 사용할 때까지 속도가 증가하지 않습니다. 내가 잘못 cyp를 사용하여 파이썬 코드를 Cython을 사용하여 컴파일했을 때 매우 눈에 띄는 속도 증가가 있었지만 나쁘게 생각하지 마십시오. Cython cdef no speed increase
이
프로그램의 나머지 부분을 둔화 된 코드의 영역입니다 :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)
이 코드 해야 1 초에 60 번이라고 점점 수 있지만 인해 코드의 속도와 내 오래된 하드웨어는 단지 약 30 번 두 번째 호출, 나는 x와 y처럼 도움이 될 것 같은 집중 사용 vars에 대한 cdef를 사용하여 생각. 그러나 cdef는 cdef 전과 후에 동일합니다.
나는 같은 인덱스, 코드에서 32 비트 파이썬 2.7
나는 지금 당장 스스로 cython을 배우고있다.하지만 내 첫인상은 최적화되지 않은 호출을 많이 사용하고 있다는 것이다. x와 y를 입력하기 만하면 충분하지 않을 것입니다. – jdi
'x'와'y'는 강렬하게 사용되는 것이 아닙니다 ... –
그러면 intenesly 사용되는 것들은 무엇입니까? x와 y는 루프의 인덱스입니까? –