Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
SET has/get vs ARR find/some/indexOf + ARR splice/set search array as found
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4.1 Safari/605.1.15
Browser:
Safari 17
Operating system:
Mac OS X 10.15.7
Device Platform:
Desktop
Date tested:
one year ago
Test name
Executions per second
ARRincludes
3990.8 Ops/sec
SET has
218435.0 Ops/sec
Script Preparation code:
function func(a, b) { return 0.5 - Math.random(); } var a = Array.from({length: 1000}).map((_, i) => i) var arrA0 = a.toSorted(func); var arrA1 = a.toSorted(func); var arrA2 = a.toSorted(func); var arrS0 = new Set(a.map((_, i) => i).toSorted(func)); var arrS1 = new Set(a.map((_, i) => i).toSorted(func)); const tenItemsToFind = () => a.toSorted(func).slice(0, 10); var list = a.slice(0,10).map(() => Array.from({length: 1000}).map((_, i) => i).toSorted(func).slice(0, 100)) var listLast = a.map(v => v).toSorted(func); var listLastTwo =a.map(v => v).toSorted(func); var aclone = a.map(v=>v); var aclonetwo = a.map(v=>v);
Tests:
ARRincludes
list.forEach( arr => arr.forEach( a => arrA0.includes(a)))
Arr find
list.forEach( arr => arr.forEach( a => arrA0.find(v => v === a)))
SET has
list.forEach(arr => arr.forEach(a => arrS0.has(a)))
Arr some
list.forEach( arr => arr.forEach( a => arrA0.some(v => v === a)))
Arr indexOf
list.forEach( arr => arr.forEach( a => arrA1.indexOf(a)))
Arr sort + index
list.forEach( arr => arr.forEach( a => arrA2[a]))
Arr presorted with remove - splice
listLast.forEach(v => { let b = aclone[v]; aclone.splice(v, 1); })
Arr presorted with remove - set
listLastTwo.forEach(v => { let b = aclonetwo[v]; aclonetwo[v] = null; aclonetwo = aclonetwo.filter(Boolean) })