Hvad tæller referencen?
Henvisningstælling er en computerprogrammeringsteknik, der bruges til at strømline hukommelsesstyring, så computeren med det samme kan vide, hvornår det er "sikkert" at frigive en bestemt værdi eller blok af værdier fra hukommelsen. Ved programmering er økonomi afgørende, så programmer kan køres på det bredest mulige udvalg af computerhardware. Random Access Memory (RAM) er en vigtig, men endelig ressource til en computer. At gemme programdata, der er gemt i RAM, er en af de hurtigste måder til at forbedre responstiden for et program, men at forbruge for meget system RAM gør programmet til en ressource-svin, et uønsket træk set fra slutbrugerens synspunkt. Referencetælling fungerer for at afbalancere dette ved at opbevare data i RAM lige så længe som det er nødvendigt af programmet.
Teknikken til at tælle referencer fungerer ved at holde styr på antallet og navnet på de objekter, programmet bruger. Tænk på computerhukommelse som et barns værelse fyldt med legetøj og opbevaringsplads på harddisken som et legetøj i rummet. Henvisningstælling holder styr på det specifikke "legetøj" (objekter), programmet (barnet) spiller med på et hvilket som helst tidspunkt; med andre ord antallet af objekter, der i øjeblikket er på "gulvet." Så snart programmet holder op med at spille med et specifikt objekt, tæller referencetælling dette og sender objektet tilbage til lageret på harddisken i stedet for at lade det fortsætte med at spise plads i RAM.
Når det kommer til fordele, kommer den primære fordel ved referencetælling fra umiddelbarhed. Det øjeblik, programmet afsluttes med et objekt, det fjerner det, frigør plads til andre objekter i programmet og til andre programmer på computeren. Fra slutbrugerens synspunkt er dette en meget ren tilgang; programmet optager aldrig mere hukommelse, end det kræver på et bestemt tidspunkt.
Ulempen med denne teknik er økonomi. For at referencetælling skal fungere effektivt, skal den anvende en evigvarende overvågningsindretning til at styre antallet af objekter, der bruges på et hvilket som helst tidspunkt. Dette bruger en lille del af hukommelse og CPU-kapacitet, hvilket øger processoromkostningen fra programmet. Resultatet er, at beslutningen om at bruge referencetælling bliver en afbalancerende handling, der bestemmer, om programmereren ønsker at tildele yderligere spænding til CPU'en eller RAM'en.