Kaj pomeni “memoizacija”?

Pomnjenje, ki je podobno pomnjenju, vendar je značilno za računalnike, je metoda optimizacije hitrosti programa s povečanjem količine prostora, ki ga uporablja. Ta tehnika neposredno pomeni, da je program zgrajen tako, da si zapomni izračune funkcije, rezultat pa je shranjen v predpomnilniku. Ko je funkcija naslednjič poklicana, lahko program pridobi izračun iz predpomnilnika, namesto da bi ponovil isti izračun. Za razliko od zmanjšanja moči, ki pospešuje stroj na podlagi podobne hitrosti in prostora, je pomnjenje prenosno in se lahko uporablja na številnih strojih.

Uporabniki ga morda ne vidijo, vendar programi ves čas delajo izračune. Ko nekdo klikne gumb v programu ali uporabi prirojeno funkcijo, je potreben izračun, da lahko deluje. Pogosto bo uporabnik večkrat uporabil isto funkcijo brez kakršne koli spremembe. Brez pomnjenja, čeprav je program pravkar izvedel izračun, bi to moral ponoviti. Zaradi tega je hitrost programa počasnejša, kot če bi shranil rezultat.

Rezultat izračuna je shranjen v območju predpomnilnika. Pri pomnjenju, ko uporabnik izvede enak ali podoben vnos, bo program črpal iz predpomnilnika, namesto da bi izvedel izračun, da bi dobil odgovor. S tem program prihrani čas ter postane optimiziran in hitrejši. Vnos je lahko podoben in ne povsem enak, zato nekateri izračuni morda niso povsem točni, vendar je netočnost običajno zelo majhna in verjetno ne bo povzročila napak.

Tehnika pomnjenja v bistvu izvaja kompromis. Vsi programi so izdelani z velikostjo in časovnimi omejitvami. Tukaj je velikost žrtvovana, da se lahko hitrost poveča. Rezultati so shranjeni v predpomnilniku, zato je za program potrebno več pomnilnika. Količina žrtvovanega pomnilnika je zelo majhna, ker je predpomnilnik omejen v količini rezultatov, ki jih lahko shrani, vendar še vedno poveča stroške prostora.

Druga podobna, a ne tako zanesljiva tehnika optimizacije kompromisov je zmanjšanje moči. Zmanjšanje moči ne zmanjša moči programa, temveč moč izračuna, tako da ga razčleni na šibkejše, manj drage funkcije pomnilnika. Na primer, množenje zahteva več časa za obdelavo kot seštevanje, zato bo formula spremenjena, da se omogoči manj zamuden proces. Ta tehnika lahko pospeši procese, vendar prihranki morda niso vidni na vseh strojih in prihrani le čas prevajanja.