Pythonで作業する私は、キューから読み取り、キューから読み取られたレコードのXMLタグのいくつかに基づいて辞書を作成し、この辞書を返す関数を持っています。私はループ内でこの関数を永遠に呼び出します。辞書は毎回再割り当てされます。辞書によって以前に使用されたメモリは、それぞれの再割り当て時に解放されるのか、それとも孤立して最終的にメモリの問題を引き起こすのでしょうか?再割り当てすると、Python辞書はすべてのメモリを解放しますか?
def readq():
qtags = {}
# Omitted code to read the queue record, get XML string, DOMify it
qtags['result'] = "Success"
qtags['call_offer_time'] = get_node_value_by_name(audio_dom, 'call_offer_time')
# More omitted code to extract the rest of the tags
return qtags
while signals.sigterm_caught == False:
tags = readq()
if tags['result'] == "Empty":
time.sleep(SLEEP_TIME)
continue
# Do stuff with the tags
したがって、ループのたびにタグを再割り当てすると、以前の割り当てで使用されたメモリが解放されてから、新しい割り当てによって割り当てられますか?
明示的にクリアするためにループの最後に "del tags"を追加するとどうなりますか? – codebunny
何が起こっているのかを明確にしてくれたことに感謝します。 – codebunny