Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
switch on object references
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (X11; Linux x86_64; rv:131.0) Gecko/20100101 Firefox/131.0
Browser:
Firefox 131
Operating system:
Linux
Device Platform:
Desktop
Date tested:
one year ago
Test name
Executions per second
switch on string
335853.3 Ops/sec
switch on object
745754.7 Ops/sec
switch on number
519284.7 Ops/sec
Script Preparation code:
var AAA = {key: "AAA", idx: 0}; var BBB = {key: "BBB", idx: 1}; var CCC = {key: "CCC", idx: 2}; var DDD = {key: "DDD", idx: 3}; var EEE = {key: "EEE", idx: 4}; var arr = [AAA, BBB, CCC, DDD, EEE]; for (let i = 5; i < 1000; i++) { arr[i] = arr[i % 5]; }
Tests:
switch on string
var sum = 0; for (let i = 0; i < arr.length; i++) { switch (arr[i].key) { case "AAA": sum += 1; break; case "BBB": sum += 2; break; case "CCC": sum += 3; break; case "DDD": sum += 4; break; case "EEE": sum += 5; break; } }
switch on object
var sum = 0; for (let i = 0; i < arr.length; i++) { switch (arr[i]) { case AAA: sum += 1; break; case BBB: sum += 2; break; case CCC: sum += 3; break; case DDD: sum += 4; break; case EEE: sum += 5; break; } }
switch on number
var sum = 0; for (let i = 0; i < arr.length; i++) { switch (arr[i].idx % 5 | 0) { case 0: sum += 1; break; case 1: sum += 2; break; case 2: sum += 3; break; case 3: sum += 4; break; case 4: sum += 5; break; } }