Kas yra nuorodų skaičiavimas?

Nuorodų skaičiavimas yra kompiuterio programavimo metodas, naudojamas supaprastinti atminties valdymą, leidžiantį kompiuteriui akimirksniu žinoti, kada yra „saugu“ iš atminties išleisti tam tikrą reikšmę ar reikšmių bloką. Programuojant itin svarbu ekonomiškumas, kad programas būtų galima paleisti naudojant kuo platesnę kompiuterių aparatinę įrangą. Random Access Memory (RAM) yra svarbus, bet ribotas kompiuterio šaltinis. Programos duomenų saugojimas RAM yra vienas greičiausių būdų pagerinti programos atsako laiką, tačiau sunaudojus per daug sistemos RAM, programa tampa resursais, o tai yra nepageidaujama savybė galutinio vartotojo požiūriu. Nuorodų skaičiavimas padeda tai subalansuoti, nes saugo duomenis RAM tiek laiko, kiek jų reikia programai.

Nuorodų skaičiavimo technika veikia stebint programos naudojamų objektų skaičių ir pavadinimus. Pagalvokite apie kompiuterio atmintį kaip apie vaikų kambarį, užpildytą žaislais, ir apie vietą standžiajame diske kaip apie žaislų skrynią kambaryje. Nuorodų skaičiavimas leidžia sekti konkrečius „žaislus“ (objektus), su kuriais programa (vaikas) žaidžia bet kuriuo metu; kitaip tariant, objektų, kurie šiuo metu yra „aukšte“, skaičius. Kai tik programa nustoja žaisti su konkrečiu objektu, nuorodų skaičiavimas į tai atsižvelgia ir grąžina objektą į saugyklą standžiajame diske, o ne leidžia jam toliau eiti vietos RAM.

Kalbant apie naudą, pagrindinis atskaitos skaičiavimo pranašumas yra betarpiškumas. Kai programa baigia kurti objektą, ji jį padeda, atlaisvindama vietos kitiems programos objektams ir kitoms programoms kompiuteryje. Galutinio vartotojo požiūriu tai labai švarus požiūris; programa niekada neužima daugiau atminties, nei jai reikia konkrečiu metu.

Šios technikos trūkumas yra ekonomiškumas. Kad nuorodų skaičiavimas veiktų efektyviai, jis turi naudoti nuolatinį stebėjimo įrenginį, kad būtų galima valdyti vienu metu naudojamų objektų skaičių. Tai sunaudoja nedidelę atminties ir procesoriaus talpos dalį, todėl programa padidina procesoriaus išlaidas. Rezultatas yra tai, kad sprendimas naudoti atskaitos skaičiavimą tampa balansavimo aktu, nulemiančiu, ar programuotojas nori skirti papildomą įtampą CPU ar RAM.