Con il termine di garbage collection, letteralmente “raccolta dei rifiuti” si intende la liberazione delle porzioni di memoria allocate, ma non più utilizzate. Le aree di memoria liberate tornano così ad essere nuovamente disponibili.
Con il sistema Gargabe Collector intendiamo dunque quel meccanismo a runtime che si occupa di ricercare le aree di memoria non più utilizzate e di renderle nuovamente utilizzabili.
Questo meccanismo è utile quando si dichiarano le variabili in modo dinamico, in quanto non si conosce esattamente l’inizio o la fine.
Nelle variabili statiche invece si conosce esattamente il tempo di vita e può essere determinato all’atto di compilazione del codice sorgente.
Garbage collection in C
In C non esiste un vero e proprio Gargabe Collector che verifichi quando un oggetto può essere de-allocato. Quindi deve essere il programmatore a decidere quando effettuare la de-allocazione.
In molti linguaggio di programmazione invece, come ad esempio Java e Phyton, il sistema del garbage collection è direttamente integrato nell’ambiente di esecuzione.
Quindi, come facilmente intuibile, uno dei vantaggi consiste nel fatto che il programmatore non si deve preoccupare di richiedere o rilasciare aree di memoria. Ma uno degli svantaggi principali è che si consumano maggiormente risorse di calcolo.
Abbiamo introdotto il concetto di garbage collection in C, nella prossima lezione parleremo della funzione free, utile per liberare la memoria precedentemente allocata.
Alcuni link utili
Realizzare un menù di scelta in C
Somma elementi diagonale principale di una matrice
Come sommare gli elementi della cornice esterna
Ricerca elementi in una matrice