1.0.5 • Published 6 years ago

cache_function v1.0.5

Weekly downloads
-
License
ISC
Repository
-
Last release
6 years ago

说明

cache_function(func,{maxStory:500,timeout:500})
//maxStory 最大缓存数量
//timeout 定时清除时间, 默认为0 ,代表不清除

ts 声明

declare module "cache_function"{
    export function cache_function<argu,res>(
        f:(...arg:argu[])=>res,opt:{
            maxStory?:number//最大缓存数量
            timeout?:number//有效时间
            arguToString?
        }
    ):
    {
        (...arg:argu[]):res
        clearAll():void
        getStore():{[key:symbol]:res}
        getCacheResult(...arg:argu[]):res
        removeCacheResult(...arg:argu[]):res
    }
}

测试

var cache_function=require("./cacheFunction");
function test() {
    return console.log(arguments);
}
t_test=cache_function(test);
t_test({a:14});
t_test({a:18});
t_test({a:17});
//debugger
t_test(14);
t_test({a:14});
t_test({a:18});
t_test({a:17});
for(var i=0;i<30;i++)
    t_test(Math.floor( i/2))
var i=0;//  i++
var cache_function=require("./cacheFunction");
function fibo (n) {
    i++;
    return n > 1 ? fibo(n - 1) + fibo(n - 2) : 1;
}
fibo=cache_function(fibo,{maxStory:50});
/*
165580141
执行次数41
aa: 2.783ms
 */

/*
不添加cache
165580141
执行次数331160281
aa: 11668.664ms
 */
console.time("aa");
console.log(fibo(40));
console.log("执行次数"+i);
console.timeEnd("aa");
1.0.5

6 years ago

1.0.4

6 years ago

1.0.3

7 years ago

1.0.2

7 years ago

1.0.1

7 years ago