benchmark: avoid TurboFan deopt in arrays bench

Something unidentified at the moment is causing the arrays benchmarks to
deopt when run with the TurboFan compiler. Refactor the test to use an
inner function that can be correctly optimized by TurboFan and
Crankshaft.

PR-URL: https://github.com/nodejs/node/pull/11894
Ref: https://github.com/nodejs/node/issues/11851#issuecomment-287106714
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
This commit is contained in:
Michaël Zasso 2017-03-17 09:21:58 +01:00 committed by James M Snell
parent e9f2ec4e1e
commit eefdf452c3
3 changed files with 15 additions and 3 deletions

View File

@ -27,9 +27,13 @@ function main(conf) {
bench.start();
var arr = new clazz(n * 1e6);
for (var i = 0; i < 10; ++i) {
run();
}
bench.end(n);
function run() {
for (var j = 0, k = arr.length; j < k; ++j) {
arr[j] = (j ^ k) & 127;
}
}
bench.end(n);
}

View File

@ -27,9 +27,13 @@ function main(conf) {
bench.start();
var arr = new clazz(n * 1e6);
for (var i = 0; i < 10; ++i) {
run();
}
bench.end(n);
function run() {
for (var j = 0, k = arr.length; j < k; ++j) {
arr[j] = 0.0;
}
}
bench.end(n);
}

View File

@ -27,9 +27,13 @@ function main(conf) {
bench.start();
var arr = new clazz(n * 1e6);
for (var i = 0; i < 10; ++i) {
run();
}
bench.end(n);
function run() {
for (var j = 0, k = arr.length; j < k; ++j) {
arr[j] = 0;
}
}
bench.end(n);
}