Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
WeakSet common many types
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
WEAKSET string
5956.4 Ops/sec
WEAKSET number
5781.2 Ops/sec
WEAKSET obj
5956.4 Ops/sec
WEAKSET symbol
5845.3 Ops/sec
WEAKSET mixed
5672.1 Ops/sec
Script Preparation code:
function func(a, b) { return 0.5 - Math.random(); } var arr = Array.from({length: 1000}).map((_, i) => { return {num: i, str: String(i)}; }).toSorted(func); var arrNum = arr.map(v => {return {[v.num]: v.num}}); var arrStr = arr.map(v => {return {[v.str]: v.str}}); var arrObj = arr.map(v =>{ const is = v.num % 2 === 0; const val = is ? v.str : v.num; return {[val]: val} }) var arrSymb = arr.map(Symbol) const arrMix = arr.toSorted(func); var arrRandom = [...arrNum.slice(0, 250), ...arrStr.slice(250, 500), ...arrObj.slice(500, 750), ...arrMix.slice(750, 1000).map(v => Symbol(v))].toSorted(func) var number = new WeakSet(); var string = new WeakSet(); var obj = new WeakSet(); var symbol = new WeakSet(); var mixed = new WeakSet();
Tests:
WEAKSET string
arrStr.forEach(v => string.add(v)) arrStr.forEach(v => string.has(v)) arrStr.forEach(v => string.size) arrStr.forEach(v => string.delete(v))
WEAKSET number
arrNum.forEach(v => number.add(v)) arrNum.forEach(v => number.has(v)) arrNum.forEach(v => number.size) arrNum.forEach(v => number.delete(v))
WEAKSET obj
arrObj.forEach(v => obj.add(v)) arrObj.forEach(v => obj.has(v)) arrObj.forEach(v => obj.size) arrObj.forEach(v => obj.delete(v))
WEAKSET symbol
arrSymb.forEach(v => symbol.add(v)) arrSymb.forEach(v => symbol.has(v)) arrSymb.forEach(v => symbol.size) arrSymb.forEach(v => symbol.delete(v))
WEAKSET mixed
arrRandom.forEach(r => mixed.add(r)) arrRandom.forEach(r => mixed.has(r)) arrRandom.forEach(r => mixed.size) arrRandom.forEach(r => mixed.delete(r))