Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
pure mergeSort - vs - memoized mergeSort
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/126.0.0.0 Safari/537.36
Browser:
Chrome 126
Operating system:
Windows
Device Platform:
Desktop
Date tested:
one year ago
Test name
Executions per second
pure
86.5 Ops/sec
memoized
671.7 Ops/sec
Script Preparation code:
function mergeSort(arr) { if (arr.length < 2) { return arr; } const midIndex = Math.floor(arr.length / 2); const left = mergeSort(arr.slice(0, midIndex)); const right = mergeSort(arr.slice(midIndex)); const result = []; while (left.length && right.length) { if (left[0] < right[0]) { result.push(left.shift()); } else { result.push(right.shift()); } } return [...result, ...left, ...right]; } function memoize(fn) { const storage = {}; return function(...args) { const key = JSON.stringify(args); if (key in storage) { return storage[key]; } else { const result = fn(...args); storage[key] = result; return result; } } } var memoizedMergeSort = memoize(mergeSort); var array = [...Array(1000)].map(() => Math.random());
Tests:
pure
[...Array(10)].forEach(() => { mergeSort(array); });
memoized
[...Array(10)].forEach(() => { memoizedMergeSort(array); });