Javascript _.memoize不会提高性能
考虑第n个斐波那契数的发现。原始函数fib(32)和memoize(fib)(32)的时间相同Javascript _.memoize不会提高性能,javascript,node.js,underscore.js,lodash,memoization,Javascript,Node.js,Underscore.js,Lodash,Memoization,考虑第n个斐波那契数的发现。原始函数fib(32)和memoize(fib)(32)的时间相同 函数fib(num){ 如果(num第一次运行时速度不会更快。记忆化只会在后续执行时给您带来好处 function fib(num) { if (num <= 1) return 1; return fib(num - 1) + fib(num - 2); } const fibmem = _.memoize(fib); fibmem(32); console.time('w
函数fib(num){
如果(num第一次运行时速度不会更快。记忆化只会在后续执行时给您带来好处
function fib(num) {
if (num <= 1) return 1;
return fib(num - 1) + fib(num - 2);
}
const fibmem = _.memoize(fib);
fibmem(32);
console.time('with memo')
fibmem(32);
console.timeEnd('with memo')
fib(32);
console.time('no memo')
fib(32)
console.timeEnd('no memo')
有没有办法让memoize
实际修改函数以实现最佳性能提升?这里就是这么做的-fibmem
函数是一个经过修改的函数,在第一次运行后(使用相同的参数)确实会给您带来速度提升。
with memo: 0.0732421875ms
no memo: 25.131103515625ms