Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Memoization

Memoization ist eine Optimierungstechnik, die das Ergebnis eines Funktionsaufrufs speichert und das gespeicherte Ergebnis zurückgibt, wenn die Funktion erneut mit denselben Eingaben aufgerufen wird. Dies vermeidet die Wiederholung der Berechnung.

Das folgende Muster ist typisch für Memoization:

js
const argToResult = new Map();

function memoizedFunction(arg) {
  if (argToResult.has(arg)) {
    return argToResult.get(arg);
  }
  const result = heavyComputation(arg);
  argToResult.set(arg, result);
  return result;
}

Memoization tauscht zusätzlichen Speicherbedarf gegen potenziell schnellere Ausführung ein. Es eignet sich für Funktionen, die für dieselben Eingaben stets dasselbe Ergebnis liefern und keine Nebeneffekte haben, insbesondere wenn erwartet wird, dass die Funktion häufig mit denselben Eingaben aufgerufen wird. Zum Beispiel wird es häufig bei Rekursion verwendet, da es viele rekursive Aufrufe mit demselben Argument geben kann.