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 determinato valore o blocco di valori dalla memoria. Durante la programmazione, l'economia è fondamentale, in modo che i programmi possano essere eseguiti sulla gamma più ampia possibile di hardware per 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 i tempi di risposta di un programma, ma consumare troppa RAM di sistema rende il programma un porco di risorse, un tratto indesiderabile dal punto di vista dell'utente finale. Il conteggio dei riferimenti agisce per bilanciare ciò 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 utilizzati dal programma. Pensa alla memoria del computer come alla stanza di un bambino piena di giocattoli e allo spazio di archiviazione sul disco rigido come a 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 "piano". Non appena il programma interrompe la riproduzione con un oggetto specifico, il conteggio dei riferimenti ne prende atto e lo rimette nell'archivio sul disco rigido, anziché consentirgli di continuare a consumare spazio nella RAM.
Quando si tratta di vantaggi, il vantaggio principale del conteggio dei riferimenti deriva dall'immediatezza. L'istante in cui il programma termina con un oggetto, lo mette via, 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 quella necessaria in qualsiasi momento specifico.
L'aspetto negativo 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 contemporaneamente. Ciò consuma una piccola parte della memoria e della 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.