Wat is referentietelling?
Referentietelling is een computerprogrammeringstechniek die wordt gebruikt om geheugenbeheer te stroomlijnen, zodat de computer onmiddellijk weet wanneer het "veilig" is om een bepaalde waarde of een waardenblok uit het geheugen vrij te geven. Bij het programmeren is economie van cruciaal belang, zodat programma's op een zo breed mogelijk bereik van computerhardware kunnen worden uitgevoerd. Random Access Memory (RAM) is een belangrijke maar eindige bron voor een computer. Het bewaren van programmagegevens in RAM is een van de snelste manieren om de responstijd van een programma te verbeteren, maar als u te veel systeem-RAM gebruikt, is het programma een resource hog, een ongewenste eigenschap vanuit het oogpunt van de eindgebruiker. Referentietelling werkt om dit in evenwicht te brengen door gegevens in RAM te bewaren zolang het programma dit nodig heeft.
De techniek van referentietelling werkt door het aantal en de naam van de objecten die het programma gebruikt bij te houden. Denk aan computergeheugen als een kinderkamer vol met speelgoed en opslagruimte op de harde schijf als een kist met speelgoed in de kamer. Referentietelling houdt bij welk specifiek "speelgoed" (objecten) het programma (kind) op enig moment speelt; met andere woorden, het aantal objecten dat zich momenteel op de 'verdieping' bevindt. Zodra het programma stopt met spelen met een specifiek object, wordt hier rekening mee gehouden en wordt het object weer op de harde schijf opgeslagen, in plaats van dat het ruimte in het RAM blijft opeisen.
Als het gaat om voordelen, komt het primaire voordeel van referentietelling voort uit directheid. Op het moment dat het programma klaar is met een object, wordt het opgeborgen, waardoor ruimte wordt vrijgemaakt voor andere objecten in het programma en voor andere programma's op de computer. Vanuit het oogpunt van de eindgebruiker is dit een zeer schone aanpak; het programma neemt nooit meer geheugen in beslag dan nodig is op een specifiek tijdstip.
Het nadeel van deze techniek is economie. Om referentietelling effectief te laten werken, moet het een eeuwigdurende bewakingsinrichting gebruiken om het aantal objecten dat op dat moment wordt gebruikt te beheren. Dit verbruikt een klein deel van de geheugen- en CPU-capaciteit, waardoor de processor-overhead van het programma toeneemt. Het resultaat is dat de beslissing om referentietelling te gebruiken een evenwichtsoefening wordt, die bepaalt of de programmeur extra stress wil toewijzen aan de CPU of de RAM.