此循環用於條碼掃描軟件。它可以像掃描條碼一樣多次運行,一小時內可以運行數百次。清理重新匹配對象
# locpats is a list of regular expression patterns of possible depot locations
for pat in locpats:
q = re.match(pat, scannedcode)
if q:
print(q)
return True
q是匹配對象。 print(q)
告訴我,每個匹配對象都有自己的一點記憶。他們會加起來。我不知道總數是多少。
我在if
內不再需要匹配對象。我應該像這樣擦拭它嗎?
q = re.match(pat, scannedcode)
if q:
q = None
return True
還是有更清潔的方式?我應該打擾一切嗎?
如果我理解正確(從this),垃圾收集與gc.collect()
將不會發生,直到一個進程終止,在我的情況下是在用戶完成掃描的一天結束。直到那個時候,這些物體不會被視爲垃圾,甚至。
你在運行cPython嗎? gc的行爲取決於你正在運行的python的風格。 – roippi
'q = None'刪除本地名稱中的引用(或者說,用對'None'對象的引用替換它)。它對對象完全沒有任何影響。如果你想推理垃圾收集和內存使用,這個區別以及許多相關的區別是非常重要的。 – delnan
你確定這是個問題嗎?您是否觀察過您的應用程序在一天內放緩或增長?就我們所知,它每小時分配10 KB,不值得擔心。 – Kevin