Try/Catch Cost In a Loop

JavaScript performance comparison

Test case created by Jackson Gabbard

Info

How much does a try catch cost?

Preparation code

 
<script>
Benchmark.prototype.setup = function() {
    var obj = { a : 1, b : 2, c : 3, d : 4, e : 5 };
};
</script>

Test runner

Warning! For accurate results, please disable Firebug before running the tests. (Why?)

Java applet disabled.

Testing in unknown unknown
Test Ops/sec
Vanilla iteration
var blah = '';
for (var prop in obj) {
  blah += obj[prop];
}
pending…
Iteration with internal try/catch
var blah = '';
for (var prop in obj) {
  try {
    blah += obj[prop];
  } catch (e) {
    console.log(' ');
  }
}
pending…

Compare results of other browsers

Revisions

You can edit these tests or add even more tests to this page by appending /edit to the URL. Here’s a list of current revisions for this page:

1 comment

Neil Whitaker commented :

I was curious to see how a try-catch outside the loop would compare, so I added a third test. In my version of Chrome, it was surprisingly close to the try-catch in the loop. It may be the performance difference is due to compiler optimizations that are lost in a try-catch scenario.

Add a comment