Mikä on viitelaskenta?

Viittauslaskenta on tietokoneohjelmointitekniikka, jota käytetään virtaviivaistamaan muistinhallintaa, jolloin tietokone voi heti tietää, milloin on ”turvallista” vapauttaa tietty arvo tai arvolohko muistista. Ohjelmoinnissa taloudellisuus on ratkaisevan tärkeää, jotta ohjelmia voidaan käyttää mahdollisimman monella tietokonelaitteistolla. Random Access Memory (RAM) on tärkeä mutta rajallinen resurssi tietokoneelle. Ohjelmatietojen säilyttäminen RAM-muistissa on yksi nopeimmista tavoista pidentää ohjelman vasteaikaa, mutta liiallisen järjestelmän RAM-muistin kuluttaminen tekee ohjelmasta resurssirikoksen, joka on ei-toivottu ominaisuus loppukäyttäjän kannalta. Viitelaskenta tasapainottaa tämän pitämällä tiedot RAM -muistissa juuri niin kauan kuin ohjelma tarvitsee.

Viitelaskentatekniikka toimii seuraamalla ohjelman käyttämien objektien lukumäärää ja nimeä. Ajattele tietokoneen muistia kuin lasten leluilla täytettyä huonetta ja kiintolevyn tallennustilaa kuin huoneen leluja. Viittauslaskenta seuraa tiettyjä “leluja” (esineitä), joilla ohjelma (lapsi) leikkii kerrallaan; toisin sanoen “kerroksessa” olevien kohteiden määrä. Heti kun ohjelma lopettaa pelaamisen tietyn objektin kanssa, viittauslaskenta ottaa tämän huomioon ja lähettää objektin takaisin kiintolevylle sen sijaan, että se antaisi jatkaa RAM -muistin tilan syömistä.

Mitä tulee etuihin, viitelaskennan ensisijainen etu tulee välittömyydestä. Kun ohjelma lopettaa objektin, se laittaa sen pois ja vapauttaa tilaa muille ohjelman kohteille ja muille tietokoneen ohjelmille. Loppukäyttäjän kannalta tämä on erittäin puhdas lähestymistapa. ohjelma ei koskaan vie enemmän muistia kuin se vaatii milloin tahansa.

Tämän tekniikan haittapuoli on talous. Jotta viitelaskenta toimisi tehokkaasti, sen on käytettävä jatkuvaa valvontalaitetta hallitakseen käytettävien kohteiden määrää kerrallaan. Tämä kuluttaa pienen osan muistista ja suorittimen kapasiteetista, mikä lisää prosessorin yleiskustannuksia ohjelmasta. Tuloksena on, että viitelaskennan käyttämisestä tulee tasapainottava teko, joka määrittää, haluaako ohjelmoija kohdistaa lisärasitusta CPU: lle tai RAM -muistille.