Perdita di memoria
Una perdita di memoria è un tipo di errore di programmazione che fa sì che un programma consumi lentamente la memoria di sistema, fino a esaurirla. Una perdita di memoria si verifica lentamente, causando un graduale peggioramento delle prestazioni del computer, finché il programma si arresta in modo anomalo o l'intero sistema operativo si blocca. Chiudere il programma responsabile della perdita libera la memoria di sistema e risolve il problema fino alla successiva esecuzione del programma.
Le perdite di memoria si verificano quando un programma non libera la memoria dopo aver smesso di averne bisogno. Quando un programma esegue un processo, richiede al sistema una quantità di memoria per eseguire quel processo. Al termine del processo, il programma dovrebbe restituire quella memoria al sistema, in modo che altri programmi possano utilizzarla. Se il programma non include le funzioni corrette per liberare la memoria (o tali funzioni non vengono utilizzate correttamente), conserverà invece quella memoria indefinitamente. Quando in seguito il programma esegue nuovamente quel processo, richiede altra memoria al sistema invece di utilizzare quella già allocata, aumentando la quantità di RAM utilizzata finché nel sistema non ne rimane più per altre funzioni.
Un programma che presenta una perdita di memoria continuerà a perdere memoria ogni volta che viene eseguito, finché l'errore non viene corretto. Fortunatamente, i kit di sviluppo software spesso includono debugger in grado di controllare il codice sorgente di un programma per individuare eventuali perdite di memoria. Quando lo sviluppatore del programma trova l'errore, può aggiornare il programma e rilasciare una patch.
NOTE: Alcuni linguaggi di programmazione, come Java e Python, utilizzano una tecnica di gestione della memoria chiamata "raccolta dei rifiuti" che recupera automaticamente la memoria e può risolvere molti (ma non tutti) gli errori dovuti a perdite di memoria.
Metti alla prova le tue conoscenze