Ką Reiškia Žodis „Atmintinė“?

Atmintinė, kuri yra panaši į įsiminimą, bet būdinga kompiuteriams, yra būdas optimizuoti programos greitį didinant jos naudojamą erdvę. Ši technika tiesiogiai reiškia, kad programa yra sukurta taip, kad atsimintų funkcijos skaičiavimus, o rezultatas išsaugomas talpykloje. Kitą kartą iškvietus funkciją, programa gali nuskaityti skaičiavimus iš talpyklos, o ne pakartoti tą patį skaičiavimą. Skirtingai nuo stiprumo mažinimo, kuris pagreitina mašiną, remiantis panašiu greičiu ir erdvės kompromisu, atmintis yra nešiojama ir gali būti naudojama daugelyje mašinų.

Vartotojai gali to nematyti, bet programos nuolat skaičiuoja. Kai kas nors spusteli programos mygtuką arba naudoja būdingą funkciją, reikia atlikti skaičiavimą, kad ji veiktų. Dažnai vartotojas tą pačią funkciją naudos kelis kartus be jokių pakeitimų. Net jei programa ką tik atliko skaičiavimą, ji turės tai padaryti dar kartą. Dėl to programos greitis yra lėtesnis nei išsaugojus rezultatą.

Skaičiavimo rezultatas išsaugomas talpyklos atminties srityje. Naudojant atmintinę, kai vartotojas atlieka tą patį arba panašų įvestį, programa imsis duomenų iš talpyklos, o ne atliks skaičiavimus, kad gautų atsakymą. Taip programa sutaupo laiko ir tampa optimizuota bei greitesnė. Įvestis gali būti panaši ir ne visai tokia pati, todėl kai kurie skaičiavimai gali būti ne visai tikslūs, tačiau netikslumas dažniausiai yra labai nedidelis ir greičiausiai nesukels klaidų.

Atmintinės technika iš esmės atlieka kompromisą. Visos programos yra sukurtos atsižvelgiant į dydžio ir laiko apribojimus. Čia dydis yra paaukotas, kad greitis gali padidėti. Rezultatai saugomi talpykloje, todėl programai reikia daugiau atminties. Atminties kiekis yra labai mažas, nes talpykloje yra ribotas rezultatų kiekis, kurį ji gali saugoti, tačiau tai vis tiek padidina vietos sąnaudas.

Kitas panašus, bet ne toks patikimas kompromiso optimizavimo būdas yra jėgos mažinimas. Sumažinus stiprumą sumažėja ne programos stiprumas, o skaičiavimo stiprumas, nes jis suskaidomas į silpnesnes, mažiau atminties reikalaujančias funkcijas. Pavyzdžiui, daugybai apdoroti reikia daugiau laiko nei sudėti, todėl formulė bus pakeista, kad būtų galima atlikti mažiau laiko reikalaujantį procesą. Ši technika gali pagreitinti procesus, tačiau taupymas gali būti matomas ne visose mašinose ir sutaupo tik kompiliavimo laiką.