Što znači “memoizacija”?

Memoizacija, koja je slična memorisanju, ali specifična za računala, metoda je optimizacije brzine programa povećanjem količine prostora koji koristi. Ono što ova tehnika izravno podrazumijeva je da je program izgrađen da zapamti izračune funkcije, a rezultat se pohranjuje u predmemoriju. Sljedeći put kada se funkcija pozove, program može dohvatiti izračun iz predmemorije umjesto da ponavlja isti izračun. Za razliku od smanjenja snage, koje ubrzava stroj na temelju slične brzine i prostora, memoizacija je prijenosna i može se koristiti na mnogim strojevima.

Korisnici to možda ne vide, ali programi cijelo vrijeme vrše izračune. Kada netko klikne gumb na programu ili koristi inherentnu funkciju, potreban je izračun da bi on funkcionirao. Često će korisnik koristiti istu funkciju nekoliko puta bez ikakvih promjena. Bez memorisanja, iako je program upravo izvršio izračun, trebao bi to ponoviti. To čini brzinu programa sporijom nego da je pohranio rezultat.

Rezultat izračuna pohranjuje se u područje cache memorije. S memoizacijom, kada korisnik izvrši isti ili sličan unos, program će izvući iz predmemorije umjesto da izvrši izračun kako bi dobio odgovor. Time program štedi vrijeme te postaje optimiziran i brži. Unos može biti sličan i ne potpuno isti, tako da neki izračuni možda neće biti posve točni, ali je netočnost obično vrlo mala i nije vjerojatno da će uzrokovati pogreške.

Tehnika memoriziranja u biti izvodi kompromis. Svi programi su napravljeni s ograničenjima veličine i vremena. Ovdje je veličina žrtvovana kako bi se brzina mogla povećati. Rezultati se pohranjuju u predmemoriju, pa je za program potrebno više memorije. Količina žrtvovane memorije je vrlo mala, jer je predmemorija ograničena u količini rezultata koju može pohraniti, ali i dalje povećava trošak prostora.

Druga slična, ali ne tako pouzdana tehnika optimizacije kompromisa je smanjenje snage. Smanjenje snage ne smanjuje snagu programa već snagu izračuna tako što ga rastavlja na slabije funkcije koje su manje skupe u memoriji. Na primjer, množenje zahtijeva veću količinu vremena za obradu od zbrajanja, pa će se formula promijeniti kako bi se omogućio proces koji nije dugotrajan. Ova tehnika može ubrzati procese, ali uštede se možda neće vidjeti na svim strojevima i samo štedi vrijeme kompajliranja.