1
我有這個代碼,只是運行速度太慢。使用Cython動態內存分配
returnMask = []
for curPage in range(numPages):
print curPage
curPageAddr = curPage + startPage
cumMask = np.ones((numBytes)).astype(int) * 0xff
for maskFunction, maskAction in maskPattern:
#maskArgs['funcArgs']['startPage'] = curPageAddr
#maskArgs['funcArgs']['numPages'] = 1
inputArgs['funcArgs']['startPage'] = curPageAddr
inputArgs['funcArgs']['numPages'] = 1
curMaskName, curMaskData = maskFunction(inputArgs)
if (maskAction == 'include'):
maskIn = np.array(curMaskData).astype(int)
if (maskAction == 'exclude'):
maskIn = (~np.array(curMaskData).astype(int)) & 0xff
cumMask = cumMask & maskIn
print "cumMask size %d" % len(cumMask)
returnMask += cumMask.astype(int).tolist()
基本上,我的for循環外是循環2000次,每次附加的2048個字節成returnMask列表。我想我可以使用Cython,將returnMask改爲動態分配的c數組,這可能有助於加快我的代碼。任何人都可以告訴我,如果這是解決這個問題的好方法嗎?
請發表整個代碼。切換到'xrange'而不是'range'。此外,由於打印語句,您的代碼可能花費大量時間寫入終端。 –
要發佈代碼,請前往[pastebin](http://pastebin.com/) – xxmbabanexx