Memoisierung (oder Memoisation) ist eine Technik aus der Computerprogrammierung zur Optimierung eines Computerprogramms. Computerprogramme rufen Funktionen auf. Jede Funktion berechnet ein Ergebnis, das sie zurückgibt. Die Memoisierung ist einfach: Bevor der Wert vom Funktionsaufruf zurückgegeben wird, wird er in einer Tabelle (oder einem assoziativen Array) gespeichert. Wie ein Cache kann dieses Array nur eine begrenzte Anzahl f von Ergebnissen speichern. Die Funktion kann dann so geändert werden, dass sie versucht, den Wert der Eingabe in ihrer Nachschlagetabelle nachzuschlagen. Dieses Nachschlagen ist viel kostengünstiger als eine erneute Berechnung. Auch wie ein Cache: Die Datentabelle wird regelmäßig bereinigt, z.B. werden die Werte, die eine bestimmte Zeit lang nicht nachgeschlagen wurden, entfernt.
Obwohl sie mit dem Caching zusammenhängt, bezieht sich die Memoisierung auf einen speziellen Fall dieser Optimierung und unterscheidet sie von Formen des Caching wie Pufferung oder Seitenersetzung. Im Zusammenhang mit einigen logischen Programmiersprachen wird die Memoisierung auch als Tabling bezeichnet; siehe auch Nachschlagetabelle.