Status: Accepted
Owner: [email protected]
Labels: Type-Bug Priority-Medium

New issue 1065 by [email protected]: try catch incurs an unexpected performance penalty
http://code.google.com/p/v8/issues/detail?id=1065

attached test has three different test cases:

  measure("baseline", function (j) {
      var s = 0;
      for (var i = 0; i < j; i++) s = i;
      for (var i = 0; i < j; i++) s = i;
      for (var i = 0; i < j; i++) s = i;
      for (var i = 0; i < j; i++) s = i;
      return s;
    }, 1000000);

  measure("try-catch #1", function (j) {
      var s = 0;
      try {
        for (var i = 0; i < j; i++) s = i;
        for (var i = 0; i < j; i++) s = i;
        for (var i = 0; i < j; i++) s = i;
        for (var i = 0; i < j; i++) s = i;
      } catch (e) {
      }
      return s;
    }, 1000000);

  measure("try-catch #2", function (j) {
      try {
      } catch (e) {
      }

      var j_ = j;
      var s = 0;
      for (var i = 0; i < j_; i++) s = i;
      for (var i = 0; i < j_; i++) s = i;
      for (var i = 0; i < j_; i++) s = i;
      for (var i = 0; i < j_; i++) s = i;
      return s;
  }, 1000000);

Running this test cases on V8 bleeding_edge HEAD with --noopt gives an unexpected result:

baseline: 11.3 ms.
try-catch #1: 30.6 ms.
try-catch #2: 22.4 ms.



Attachments:
        try-catch.js  1.2 KB

--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to