Cosa significa “memorizzazione”?

La memorizzazione, che è simile alla memorizzazione ma specifica per i computer, è un metodo per ottimizzare la velocità di un programma aumentando la quantità di spazio che utilizza. Ciò che questa tecnica comporta direttamente è che un programma è costruito per ricordare i calcoli di una funzione e il risultato è memorizzato in una cache. La volta successiva che viene chiamata la funzione, il programma può recuperare il calcolo dalla cache invece di ripetere lo stesso calcolo. A differenza della riduzione della forza, che accelera la macchina in base a una velocità simile e a un compromesso di spazio, la memoizzazione è portatile e può essere utilizzata su molte macchine.

Gli utenti potrebbero non vederlo, ma i programmi fanno calcoli tutto il tempo. Quando qualcuno fa clic su un pulsante su un programma o utilizza una funzione intrinseca, è necessario un calcolo per farlo funzionare. Spesso l’utente utilizzerà la stessa funzione più volte senza alcuna modifica. Senza la memorizzazione in atto, anche se il programma ha appena eseguito un calcolo, dovrebbe farlo di nuovo. Ciò rende la velocità del programma più lenta rispetto a quando memorizzasse il risultato.

Il risultato di un calcolo viene archiviato in un’area di memoria cache. Con la memorizzazione, quando l’utente esegue lo stesso input o un input simile, il programma attingerà dalla cache anziché eseguire il calcolo per ottenere la risposta. In questo modo, il programma risparmia tempo e diventa ottimizzato e più veloce. L’input potrebbe essere simile e non esattamente lo stesso, quindi alcuni calcoli potrebbero non essere del tutto accurati, ma l’inesattezza è solitamente molto lieve ed è improbabile che causi errori.

La tecnica di memorizzazione esegue essenzialmente un compromesso. Tutti i programmi sono costruiti con vincoli di dimensione e tempo. Qui, la dimensione viene sacrificata in modo che la velocità possa aumentare. I risultati vengono archiviati nella cache, quindi è necessaria più memoria per il programma. La quantità di memoria sacrificata è molto ridotta, perché una cache è limitata nella quantità di risultati che può memorizzare, ma aumenta comunque il costo dello spazio.

Un’altra tecnica di ottimizzazione del compromesso simile, ma non altrettanto affidabile, è la riduzione della forza. La riduzione della forza non riduce la forza del programma ma la forza del calcolo suddividendolo in funzioni più deboli e meno costose per la memoria. Ad esempio, la moltiplicazione richiede una quantità di tempo maggiore per l’elaborazione rispetto all’addizione, quindi la formula verrà modificata per consentire il processo che richiede meno tempo. Questa tecnica è in grado di accelerare i processi, ma i risparmi potrebbero non essere visibili su tutte le macchine e consente solo di risparmiare tempo di compilazione.