Che cos’è il conteggio dei riferimenti?

Il conteggio dei riferimenti è una tecnica di programmazione del computer utilizzata per semplificare la gestione della memoria, consentendo al computer di sapere immediatamente quando è “sicuro” rilasciare un particolare valore o blocco di valori dalla memoria. Quando si programma, l’economia è fondamentale, in modo che i programmi possano essere eseguiti sulla gamma più ampia possibile di hardware del computer. La memoria ad accesso casuale (RAM) è una risorsa importante ma limitata per un computer. Mantenere i dati del programma archiviati nella RAM è uno dei modi più veloci per migliorare il tempo di risposta di un programma, ma consumare troppa RAM di sistema rende il programma un divoratore di risorse, una caratteristica indesiderabile dal punto di vista dell’utente finale. Il conteggio dei riferimenti agisce per bilanciare questo mantenendo i dati nella RAM per tutto il tempo necessario al programma.

La tecnica del conteggio dei riferimenti funziona tenendo traccia del numero e del nome degli oggetti che il programma sta utilizzando. Pensa alla memoria del computer come la stanza di un bambino piena di giocattoli e allo spazio di archiviazione sul disco rigido come una cassa di giocattoli nella stanza. Il conteggio dei riferimenti tiene traccia degli specifici “giocattoli” (oggetti) con cui il programma (bambino) sta giocando in qualsiasi momento; in altre parole, il numero di oggetti che si trovano attualmente sul “pavimento”. Non appena il programma smette di giocare con un oggetto specifico, il conteggio dei riferimenti ne prende nota e rispedisce l’oggetto in memoria sul disco rigido, invece di consentirgli di continuare a consumare spazio nella RAM.

Quando si tratta di vantaggi, il vantaggio principale del conteggio delle referenze deriva dall’immediatezza. Nell’istante in cui il programma finisce con un oggetto, lo ripone, liberando spazio per altri oggetti nel programma e per altri programmi sul computer. Dal punto di vista dell’utente finale, questo è un approccio molto pulito; il programma non occupa mai più memoria di quanta ne richieda in un momento specifico.

Lo svantaggio di questa tecnica è l’economia. Affinché il conteggio dei riferimenti funzioni in modo efficace, deve utilizzare un dispositivo di monitoraggio perpetuo per gestire il numero di oggetti utilizzati in qualsiasi momento. Ciò consuma una piccola porzione di memoria e capacità della CPU, aumentando il sovraccarico del processore dal programma. Il risultato è che la decisione di utilizzare il conteggio dei riferimenti diventa un atto di bilanciamento, determinando se il programmatore desidera allocare ulteriore stress alla CPU o alla RAM.