Arbeiten in Python. Ich habe eine Funktion, die aus einer Warteschlange liest und ein Wörterbuch auf der Grundlage einiger der XML-Tags in dem aus der Warteschlange gelesenen Datensatz erstellt und dieses Wörterbuch zurückgibt. Ich rufe diese Funktion in einer Endlosschleife auf. Das Wörterbuch wird jedes Mal neu zugewiesen. Wird der zuvor vom Wörterbuch verwendete Speicher bei jeder Neuzuweisung freigegeben, oder wird er verwaist und verursacht schließlich Speicherprobleme?
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
Also, wenn ich Tags jedes Mal in dieser Schleife neu zuweisen, wird der Speicher, der von der vorherigen Zuweisung verwendet wird, freigegeben, bevor er von der neuen Zuweisung zugewiesen wird?