我有以下代碼:循環性能下降
keywordindex = cPickle.load(open('keywordindex.p','rb'))#contains~340 thousand items
masterIndex = {}
indexes = [keywordindex]
for partialIndex in indexes:
start = time.time()
for key in partialIndex.iterkeys():
if key not in masterIndex.keys():
masterIndex[key]= partialIndex[key]
elif key in masterIndex.keys():
masterIndex[key].extend(partialIndex[key])
cPickle.dump(masterIndex,open('MasterIndex.p','wb'))
print int(time.time() - start), ' seconds'#every thousand loops
和我遇到降解性能,循環運行,前10萬餘耗時5秒左右‰,但每10萬人左右,另需第二,直到它的時間延長3倍。我試圖以各種可能的方式簡化代碼,但我似乎無法弄清楚是什麼原因造成的。是否有一個原因?這不是一個內存問題,我只有30%的使用率
你爲什麼要創建一個1元素的索引列表,然後遍歷它呢?看起來你可以完全拋棄外部循環。 – user2357112
@user有超過1個的列表,我刪除了他們的問題 –