Javascript有哪些记忆库?

Javascript有哪些记忆库?,javascript,memoization,Javascript,Memoization,有许多Javascript库用于记忆函数 对于不同的用例,哪些是最好的(高质量、灵活、快速等)?我发现有大量不同的JavaScript记忆库,它们都以稍微不同的方式运行 我将尝试在这里列出并比较“最好”的。(大致按我估计的有效性/通用性排序;或者更确切地说,这就是我有时间进一步研究它们的计划!) 核心功能:(标记为✔️对❌不⚙️部分的❔(未知) npm)从npm安装:该软件包在npm上提供。(便于集成/更新) m-arg)多个参数:可以记忆传递多个参数的函数。 o-arg)对象参数:可以记忆传递

有许多Javascript库用于记忆函数


对于不同的用例,哪些是最好的(高质量、灵活、快速等)?

我发现有大量不同的JavaScript记忆库,它们都以稍微不同的方式运行

我将尝试在这里列出并比较“最好”的。(大致按我估计的有效性/通用性排序;或者更确切地说,这就是我有时间进一步研究它们的计划!)

核心功能:(标记为✔️对❌不⚙️部分的❔(未知)

npm)从npm安装:该软件包在npm上提供。(便于集成/更新)
m-arg)多个参数:可以记忆传递多个参数的函数。
o-arg)对象参数:可以记忆传递给对象参数的函数。
o-hash)对象散列:可以通过使用
Map
/
WeakMap
对象
参数使用内部JS散列进行记忆。(性能优于序列化或缓存项迭代)
m-slot)多个插槽:可以存储缓存的结果,而不仅仅是最后一组参数。(无需手动创建新的“缓存插槽”/“实例化”)
自动)自动记忆:可以基于常规传递的参数进行记忆;基本记忆不需要特定于功能的设置/包装。(可能仍需要通用包装)

用于同步函数 (基于) 核心功能):✔️, m-精氨酸:✔️, o-精氨酸:✔️, o-hash:❌, m槽:✔️, 自动:✔️
受欢迎程度)GitHub明星:~550;NPM每周下载量:~76k(2020-04-24)

核心功能):✔️, m-精氨酸:✔️, o-精氨酸:✔️, o-hash:⚙️, m槽:✔️, 自动:✔️
受欢迎程度)GitHub明星:~1.1k;NPM每周下载量:约190万(2020-04-24)

核心功能):✔️, m-精氨酸:✔️, o-精氨酸:✔️, o-hash:✔️, m槽:✔️, 自动:✔️
受欢迎程度)GitHub明星:~850;NPM每周下载量:约6万(2020-04-24)

核心功能):✔️, m-精氨酸:✔️, o-精氨酸:✔️, o-hash:❌, m槽:✔️, 自动:✔️
受欢迎程度)GitHub明星:~2.2k;NPM每周下载量:~381k(2020-04-24)

核心功能):✔️, m-精氨酸:✔️, o-精氨酸:✔️, o-hash:✔️, m槽:✔️, 自动:✔️

() 核心功能):✔️, m-精氨酸:❌, o-精氨酸:✔️, o-hash:✔️, m槽:✔️, 自动:✔️

核心功能):✔️, m-精氨酸:✔️, o-精氨酸:✔️, o-hash:✔️, m槽:✔️, 自动:✔️

核心功能):✔️, m-精氨酸:✔️, o-精氨酸:✔️, o-hash:✔️, m槽:✔️, 自动:✔️

() 核心功能):✔️, m-精氨酸:❌, o-精氨酸:✔️, o-hash:❌, m槽:✔️, 自动:✔️

核心功能)npm:❔, m-精氨酸:❔, o-精氨酸:❔, o-hash:❔, m槽:❔, 自动:❔

核心功能)npm:❔, m-精氨酸:❔, o-精氨酸:❔, o-hash:❔, m槽:❔, 自动:❔

核心功能)npm:❔, m-精氨酸:❔, o-精氨酸:❔, o-hash:❔, m槽:❔, 自动:❔

核心功能)npm:❔, m-精氨酸:❔, o-精氨酸:❔, o-hash:❔, m槽:❔, 自动:❔

核心功能)npm:❔, m-精氨酸:❔, o-精氨酸:❔, o-hash:❔, m槽:❔, 自动:❔

核心功能)npm:❔, m-精氨酸:❔, o-精氨酸:❔, o-hash:❔, m槽:❔, 自动:❔

核心功能):✔️, m-精氨酸:❔, o-精氨酸:❔, o-hash:❔, m槽:❌, 自动:❔

核心功能)npm:❔, m-精氨酸:❔, o-精氨酸:❔, o-hash:❔, m槽:❌, 自动:❔

核心功能)npm:❔, m-精氨酸:❔, o-精氨酸:❔, o-hash:❔, m槽:❔, 自动:❔

核心功能)npm:❔, m-精氨酸:❔, o-精氨酸:❔, o-hash:❔, m槽:❔, 自动:❔

核心功能)npm:❔, m-精氨酸:❔, o-精氨酸:❔, o-hash:❔, m槽:❔, 自动:❔

核心功能)npm:❔, m-精氨酸:❔, o-精氨酸:❔, o-hash:❔, m槽:❔, 自动:❔

核心功能)npm:❔, m-精氨酸:❔, o-精氨酸:❔, o-hash:❔, m槽:❔, 自动:❔

核心功能)npm:❔, m-精氨酸:❔, o-精氨酸:❔, o-hash:❔, m槽:❔, 自动:❌

核心功能)npm:❔, m-精氨酸:❔, o-精氨酸:❔, o-hash:❔, m槽:❔, 自动:❌

核心功能)npm:❔, m-精氨酸:❔, o-精氨酸:❔, o-hash:❔, m槽:❔, 自动:❔

核心功能)npm:❔, m-精氨酸:❔, o-精氨酸:❔, o-hash:❔, m槽:❔, 自动:❔

核心功能)npm:❔, m-精氨酸:❔, o-精氨酸:❔, o-hash:❔, m槽:❔, 自动:❔

核心功能)npm:❔, m-精氨酸:❔, o-精氨酸:❔, o-hash:❔, m槽:❔, 自动:❔

核心功能)npm:❔, m-精氨酸:❔, o-精氨酸:❔, o-hash:❔, m槽:❔, 自动:❔

核心功能)npm:❔, m-精氨酸:❔, o-精氨酸:❔, o-hash:❔, m槽:❔, 自动:❔

核心功能)npm:❔, m-精氨酸:❔, o-精氨酸:❔, o-hash:❔, m槽:❔, 自动:❔

对于异步函数 [参见上面同步类别中的条目]

核心功能)npm:❔, m-精氨酸:❔, o-精氨酸:❔, o-hash:❔, m槽:❔, 自动:❔

核心功能)npm:❔, m-精氨酸:❔, o-精氨酸:❔, o-hash:❔, m槽:❔, 自动:❔

核心功能)npm:❔, m-精氨酸:❔, o-精氨酸:❔, o-hash:❔, m槽:❔, 自动:❔

核心功能)npm:❔, m-精氨酸:❔, o-精氨酸:❔, o-hash:❔, m槽:❔, 自动:❔

核心功能)npm:❔, m-精氨酸:❔, o-精氨酸:❔, o-hash:❔, m槽:❔, 自动:❔

核心功能)npm:❔, m-精氨酸:❔, o-精氨酸:❔, o-hash:❔, m槽:❔, 自动:❔

讨论 实际上,JS备忘录库比这个多得多(我知道…),但我忽略了其中的一些:

  • 无法在内存中记忆。(例如,仅基于文件的缓存)
  • 无法记忆独立函数。(例如,仅限类方法)
  • 不是开源的,或者托管在某个疯狂的地方XD
  • 超出了前几页