Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
Is String Set be faster than many equal?
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
Without Set
9.2 Ops/sec
With Set
2546.8 Ops/sec
Script Preparation code:
var fullList = new Array(9000).fill(0).map((e,i)=>`${i}::${crypto.randomUUID()}`); var k01 = new Array(9000).fill(0).map((e,i)=>Math.random()>0.5); var k02 = new Array(9000).fill(0).map((e,i)=>Math.random()>0.5); var s01 = fullList.map((e,i)=>k01[i]?e:null).filter(e=>e); var s02 = fullList.map((e,i)=>k02[i]?e:null).filter(e=>e); var f01 = new Function('key', s01.map(e=>`if(key==='${e}')return true;`).join('\n')+'return false;'); var f02 = new Function('key','s', `if(s.has(key))return true;`+'return false;'); var st = new Set(s01); var test01 = function(){ const main = s01; const loop = s02; let result = 0; let ui = 0; for(let s of loop){ ui++; if(f01(s))continue; result += ui; } return result; } var test02 = function(){ const main = s01; const loop = s02; let result = 0; let ui = 0; for(let s of loop){ ui++; if(f02(s, st))continue; result += ui; } return result; } console.log('test01',test01()); console.log('test02',test02());
Tests:
Without Set
test01();
With Set
test02();