JavaScript 中的记忆

javascript 中的记忆

记忆化(或“记忆化”)是一种优化技术,可以缓存繁重或耗时的函数的结果,以便将来使用相同参数的调用更快。记忆在纯函数中特别有用,因为同一组输入总是产生相同的结果。

记忆是如何运作的?

当第一次使用某些参数调用记忆的函数时,它会执行计算并将结果存储在缓存中。后续调用相同参数时,函数会直接从缓存中返回结果,避免重复计算。

基本记忆实现

function memoize(fn) {
  const cache = {};

  return function(...args) {
    const key = json.stringify(args); // cria uma chave única para os argumentos

    if (cache[key]) {
      console.log("resultado em cache");
      return cache[key]; // retorna o valor armazenado no cache
    }

    const result = fn(...args); // calcula o valor
    cache[key] = result; // armazena o resultado no cache

    return result;
  };
}

使用示例:

function factorial(n) {
  if (n <= 1) return 1;
  return n * factorial(n - 1);
}

const memoizedFactorial = memoize(factorial);

console.log(memoizedFactorial(5)); // Calcula e armazena em cache
console.log(memoizedFactorial(5)); // Recupera do cache

记忆的好处

  • 减少处理:避免重复计算,从而提高性能。
  • 递归函数的理想选择:加快需要使用相同值多次调用的函数的处理速度。
  • 纯函数的高效:当函数为相同的参数返回相同的值时,记忆效果最好。 记忆的常见应用
  • 数学计算:如阶乘、斐波那契等
  • api 调用:防止使用相同参数重复调用 api。
  • 高成本运营:数据处理和复杂操作。

总结
javascript 中的记忆是一种强大的技术,可以提高代码效率并加速重复性、计算量大的操作的性能。

以上就是JavaScript 中的记忆的详细内容,更多请关注其它相关文章!