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