Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
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:
one year ago
Test name
Executions per second
try
1162.6 Ops/sec
check
1104.8 Ops/sec
try (bad)
104.3 Ops/sec
check (bad)
887.0 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);