Test name | Executions per second |
---|---|
Fib Base | 8829.5 Ops/sec |
Fib memoized 1 | 46239.4 Ops/sec |
Fib memoized Tommy | 654223.2 Ops/sec |
const fibonacci = (n) => {
if (n <= 1) return 1;
return fibonacci(n - 1) + fibonacci(n - 2);
};
fibonacci(20);
const memoize = function(func) {
var stringifyJson = JSON.stringify,
cache = {};
var cachedfun = function() {
var hash = stringifyJson(arguments);
return hash in cache ? cache[hash] : (cache[hash] = func.apply(this, arguments));
};
cachedfun.__cache = function() {
cache.remove ||
(cache.remove = function() {
var hash = stringifyJson(arguments);
return delete cache[hash];
});
return cache;
}.call(this);
return cachedfun;
};
const fibonacci = memoize((n) => {
if (n <= 1) return 1;
return fibonacci(n - 1) + fibonacci(n - 2);
});
fibonacci(20);
const memoize = function(func) {
const cache= {}
return (args) => {
const n = args[0]
if (n in cache) {
return cache[n];
} else {
const result = func(n)
cache[n] = result
return result
}
}
};
const fibonacci = memoize((n) => {
if (n <= 1) return 1;
return fibonacci(n - 1) + fibonacci(n - 2);
});
fibonacci(20);