MemoizeeJavaScript 的完整?memoize/cache 解決方案
Memoizee 是一個(gè)用于 JavaScript 的完整 memoize/cache 解決方案。
特性:
- 適用于任何類型的函數(shù)參數(shù)——不需要序列化
- 適用于任意長(zhǎng)度的函數(shù)參數(shù)。長(zhǎng)度可以設(shè)置為固定或動(dòng)態(tài)。
- 最快的可用解決方案之一。
- 支持 promises 和 asynchronous functions
- 當(dāng)參數(shù)可轉(zhuǎn)換為字符串時(shí),可確保快速性能的原始模式。
- 基于 WeakMap 的垃圾收集友好配置模式
- 可以為方法配置(when
thiscounts in) - 可以手動(dòng)或在指定超時(shí)后清除緩存
- 緩存大小可以基于 LRU進(jìn)行限制
- 可選地接受在將函數(shù)參數(shù)傳遞給底層函數(shù)之前規(guī)范化函數(shù)參數(shù)的解析器。
- 可選的引用計(jì)數(shù)器模式,允許更復(fù)雜的緩存管理
- 提供有價(jià)值的使用統(tǒng)計(jì)數(shù)據(jù)的配置文件工具
- 涵蓋 500 多個(gè)單元測(cè)試
Usage
var memoize = require("memoizee"); var fn = function(one, two, three) { /* ... */ }; memoized = memoize(fn); memoized("foo", 3, "bar"); memoized("foo", 3, "bar"); // Cache hit
評(píng)論
圖片
表情
