Memorizzazione
La memorizzazione (o memoizzazione) è una tecnica della programmazione informatica per ottimizzare un programma per computer. I programmi per computer chiamano funzioni. Ogni funzione calcola un risultato che restituirà. La memorizzazione è semplice: prima che il valore venga restituito dalla chiamata di funzione, viene memorizzato in una tabella (o array associativo). Come una cache, questo array potrà memorizzare solo un numero limitato di risultati. La funzione può quindi essere modificata in modo che cerchi il valore dell'input nella sua tabella di ricerca. Questa ricerca è molto meno costosa che fare di nuovo il calcolo. Anche come una cache: la tabella dei dati sarà pulita periodicamente, per esempio i valori che non sono stati cercati per un certo tempo vengono rimossi.
Sebbene sia collegata al caching, la memoizzazione si riferisce ad un caso specifico di questa ottimizzazione, distinguendola da forme di caching come il buffering o la sostituzione delle pagine. Nel contesto di alcuni linguaggi di programmazione logica, la memorizzazione è anche conosciuta come tabulazione; vedi anche lookup table.
Domande e risposte
D: Che cos'è la memorizzazione?
R: La memorizzazione è una tecnica di programmazione informatica che ottimizza i programmi memorizzando i risultati delle chiamate di funzione in una tabella o in un array associativo.
D: Come funziona la memorizzazione?
R: Prima che un valore venga restituito da una chiamata di funzione, viene memorizzato in una tabella di ricerca. In seguito, la funzione cercherà il valore dell'input nella tabella di ricerca invece di ricalcolarlo, il che è molto meno costoso.
D: Quali sono i vantaggi della memorizzazione?
R: La memorizzazione può migliorare le prestazioni del programma riducendo il numero di calcoli necessari. È anche una tecnica di ottimizzazione semplice che può essere applicata a molti programmi.
D: Come funziona la tabella di ricerca?
R: La tabella di ricerca memorizza i valori restituiti dalle chiamate di funzione. Come una cache, ha un limite al numero di risultati che può memorizzare e viene periodicamente pulita rimuovendo i valori a cui non si accede da tempo.
D: Che cosa distingue la memorizzazione da altre forme di caching?
R: La memorizzazione è un caso specifico di caching che si riferisce alla memorizzazione dei risultati delle chiamate di funzione. È diversa da altre forme di caching, come il buffering o la sostituzione di pagina.
D: La memorizzazione è utilizzata nei linguaggi di programmazione logica?
R: Sì, la memoizzazione è nota anche come tabling in alcuni linguaggi di programmazione logica.
D: Qual è il rapporto tra la memoizzazione e una tabella di ricerca?
R: La memorizzazione comporta l'utilizzo di una tabella di ricerca per memorizzare i risultati delle chiamate di funzione. La funzione può cercare i valori nella tabella invece di ricalcolarli.