Toggle navigation
MeasureThat
.net
Create a benchmark
Tools
Feedback
Feature Requests
FAQ
Register
Log In
Run results for:
Set.has vs Array.includes
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
Browser:
Chrome 130
Operating system:
Mac OS X 10.15.7
Device Platform:
Desktop
Date tested:
one year ago
Benchmark engine:
Benchmark.js
Set.has - small
5.6M/s
Set.has - large
5.6M/s
Array.includes - small
796K/s
Array.includes - large
221K/s
View exact numbers
Test name
Executions per second
✓
Set.has - small
5,627,109 Ops/sec
Set.has - large
5,623,946 Ops/sec
Array.includes - small
795,712 Ops/sec
Array.includes - large
220,691 Ops/sec
Script Preparation code:
function range(s, e) { const xs = []; for (let i=s; i<e; i++) xs.push(i); return xs; } const pow = y => x => Math.pow(y, x); const p10 = pow(10); // [10, 100, ..., 1_000_000] const xss = range(1, 7) .map(i => range(0, p10(i))); const sxss = xss .map(xs => new Set(xs)); var yss = range(1, 7) .map(i => range(1, 9) .map(j => j * p10(i)) ); var smallXss = xss.slice(0, 3); var largeXss = xss.slice(3); var smallSxss = sxss.slice(0, 3); var largeSxss = sxss.slice(3);
Tests:
Array.includes - small
const xss = smallXss; const n = xss.length; const n2 = yss[0].length; for (let i = 0; i < n; i++) { const xs = xss[i]; const ys = yss[i]; for (let j = 0; j < n2; j++) { xs.includes(ys[j]); } }
Set.has - small
const xss = smallSxss; const n = xss.length; const n2 = yss[0].length; for (let i = 0; i < n; i++) { const xs = xss[i]; const ys = yss[i]; for (let j = 0; j < n2; j++) { xs.has(ys[j]); } }
Array.includes - large
const xss = largeXss; const n = xss.length; const n2 = yss[0].length; for (let i = 0; i < n; i++) { const xs = xss[i]; const ys = yss[i]; for (let j = 0; j < n2; j++) { xs.includes(ys[j]); } }
Set.has - large
const xss = largeSxss; const n = xss.length; const n2 = yss[0].length; for (let i = 0; i < n; i++) { const xs = xss[i]; const ys = yss[i]; for (let j = 0; j < n2; j++) { xs.has(ys[j]); } }