Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
Memoization functions
Test different memoization functions
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36
Browser:
Chrome 120
Operating system:
Windows
Device Platform:
Desktop
Date tested:
2 years ago
Test name
Executions per second
Memoize
194.3 Ops/sec
Memoize without closure
194.3 Ops/sec
Script Preparation code:
//------------------ SETUP function memoizeWithoutClosure(fn) { const memoizedFunction = () => { if (memoizedFunction.cache === undefined) { memoizedFunction.cache = fn(); } return memoizedFunction.cache; }; return memoizedFunction; } function memoize(fn) { let cachedResult; return () => { if (cachedResult === undefined) { cachedResult = fn(); } return cachedResult; }; } var funcs = [...Array(5000).keys()].map(_ => (() => 'ashkjsaskhkajhdkajhdk')); //----------- MEMOIZE WIthour Closure const memoizedFuncs = funcs.map(fn => memoizeWithoutClosure(fn)); memoizedFuncs.forEach(fn => fn()); memoizedFuncs.forEach(fn => fn());
Tests:
Memoize
//------------ MEMOIZE const memoizedFuncs = funcs.map(fn => memoize(fn)); memoizedFuncs.forEach(fn => fn()); memoizedFuncs.forEach(fn => fn());
Memoize without closure
//----------- MEMOIZE without Closure const memoizedFuncs = funcs.map(fn => memoizeWithoutClosure(fn)); memoizedFuncs.forEach(fn => fn()); memoizedFuncs.forEach(fn => fn());