Toggle navigation
MeasureThat
.net
Create a benchmark
Tools
Feedback
Feature Requests
FAQ
Register
Log In
Run results for:
try/catch vs check
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/124.0.0.0 Safari/537.36
Browser:
Chrome 124
Operating system:
Windows
Device Platform:
Desktop
Date tested:
2 years ago
Benchmark engine:
Benchmark.js
try
1K/s
check
1K/s
check (bad)
887/s
try (bad)
104/s
View exact numbers
Test name
Executions per second
✓
try
1,163 Ops/sec
check
1,105 Ops/sec
check (bad)
887 Ops/sec
try (bad)
104 Ops/sec
Script Preparation code:
function log() { var str = ""; for (var i = 0; i < arguments.length; ++i) { str += String(arguments[i]); } } var resA; function doTry (e) { try { resA = e.details[0]; } catch (err) { log("unexpected format of event:", err.toString()); } } var resB; function doCheck (e) { if (e && e.details) { resB = e.details[0]; } else { log("unexpected format of event:", e); } } var goodEvents = []; for (var i = 0; i < 10000; ++i) { goodEvents.push({ details: [ Math.random() ] }); } var badEvents = []; for (var i = 0; i < 10000; ++i) { if (i % 20 === 0) { badEvents.push(null); } else if (i % 20 === 10) { badEvents.push({}); } else { badEvents.push({ details: [ Math.random() ] }); } } function test (events, fn) { for (var i = 0; i < events.length; ++i) { fn(events[i]); } }
Tests:
try
test(goodEvents, doTry);
check
test(goodEvents, doCheck);
try (bad)
test(badEvents, doTry);
check (bad)
test(badEvents, doCheck);