Memoized Function
记忆化缓存一元函数的入参到结果的映射,在重复以相同参数调用时直接返回缓存,适合纯函数且计算较贵的场景。
项目中的实现
- 源码:
src/memoizedFunction.ts - 导出:
memoizeUnary、clearMemoizedCache(对给定fn返回新的记忆化包装,并非清空原函数已有缓存)
各函数示例
memoizeUnary
import { memoizeUnary } from 'wssf-kage-js';
const slowParse = memoizeUnary((raw: string) => JSON.parse(raw) as Record<string, unknown>);
slowParse('{"a":1}');
slowParse('{"a":1}'); // 第二次走缓存
clearMemoizedCache
import { memoizeUnary, clearMemoizedCache } from 'wssf-kage-js';
const f = memoizeUnary((x: number) => x * 2);
f(2);
const g = clearMemoizedCache(f); // 新的 memoize 包装,独立缓存
g(2);
什么时候优先用
- 纯函数、参数可序列化为稳定键
- 注意内存:长期运行的服务要对缓存大小有策略(本实现为简单
Map,生产可换 LRU)