Lavorare in Python. Ho una funzione che legge da una coda e crea un dizionario basato su alcuni tag XML nel record letto dalla coda e restituisce questo dizionario. Io chiamo questa funzione in un ciclo per sempre. Il dizionario viene riassegnato ogni volta. La memoria precedentemente utilizzata dal dizionario viene liberata ad ogni riassegnazione, oppure viene resa orfana e alla fine causa problemi di memoria?I dizionari Python hanno liberato tutta la memoria quando vengono riassegnati?
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
Così, quando ho riassegnare i tag ogni volta in quel ciclo, sarà la memoria utilizzata dalla precedente assegnazione ottenere liberato prima di essere assegnati dal nuovo incarico?
Che ne dici se aggiungo "del tag" alla fine del mio ciclo per cancellarlo esplicitamente? – codebunny
Grazie a tutti per aver reso chiaro ciò che sta accadendo. – codebunny