Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nodejs/node.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBartosz Sosnowski <bartosz@janeasystems.com>2017-02-28 20:40:53 +0300
committerItalo A. Casas <me@italoacasas.com>2017-03-21 16:50:45 +0300
commitf48763c5b9d56da253296519dfe9ab664b1bee6e (patch)
tree13032dd208f59b478e5651ee217d40584a6e4c71 /benchmark
parentca319862fd5442d87416d04b99655c1457540969 (diff)
benchmark: remove benchmarks forced optimizations
Removes all instances of %OptimizeFunctionOnNextCall from benchmarks Refs: https://github.com/nodejs/node/pull/9615 Refs: https://github.com/nodejs/node/pull/11720
Diffstat (limited to 'benchmark')
-rw-r--r--benchmark/README.md9
-rw-r--r--benchmark/buffers/buffer-compare-instance-method.js4
-rw-r--r--benchmark/buffers/buffer-compare-offset.js23
-rw-r--r--benchmark/buffers/buffer-swap.js5
-rw-r--r--benchmark/common.js14
-rw-r--r--benchmark/crypto/get-ciphers.js9
-rw-r--r--benchmark/es/defaultparams-bench.js4
-rw-r--r--benchmark/es/restparams-bench.js6
-rw-r--r--benchmark/misc/console.js13
-rw-r--r--benchmark/misc/punycode.js6
-rw-r--r--benchmark/misc/util-extend-vs-object-assign.js8
-rw-r--r--benchmark/path/basename-posix.js7
-rw-r--r--benchmark/path/basename-win32.js7
-rw-r--r--benchmark/path/dirname-posix.js7
-rw-r--r--benchmark/path/dirname-win32.js7
-rw-r--r--benchmark/path/extname-posix.js7
-rw-r--r--benchmark/path/extname-win32.js7
-rw-r--r--benchmark/path/format-posix.js7
-rw-r--r--benchmark/path/format-win32.js7
-rw-r--r--benchmark/path/isAbsolute-posix.js7
-rw-r--r--benchmark/path/isAbsolute-win32.js7
-rw-r--r--benchmark/path/join-posix.js7
-rw-r--r--benchmark/path/join-win32.js7
-rw-r--r--benchmark/path/makeLong-win32.js7
-rw-r--r--benchmark/path/normalize-posix.js7
-rw-r--r--benchmark/path/normalize-win32.js7
-rw-r--r--benchmark/path/parse-posix.js12
-rw-r--r--benchmark/path/parse-win32.js12
-rw-r--r--benchmark/path/relative-posix.js12
-rw-r--r--benchmark/path/relative-win32.js12
-rw-r--r--benchmark/path/resolve-posix.js7
-rw-r--r--benchmark/path/resolve-win32.js7
-rw-r--r--benchmark/querystring/querystring-parse.js17
-rw-r--r--benchmark/querystring/querystring-stringify.js5
-rw-r--r--benchmark/streams/readable-bigread.js8
-rw-r--r--benchmark/streams/readable-bigunevenread.js8
-rw-r--r--benchmark/streams/readable-boundaryread.js9
-rw-r--r--benchmark/streams/readable-readall.js8
-rw-r--r--benchmark/streams/readable-unevenread.js8
-rw-r--r--benchmark/tls/convertprotocols.js7
-rw-r--r--benchmark/url/url-format.js4
-rw-r--r--benchmark/url/url-resolve.js7
-rw-r--r--benchmark/util/format.js7
43 files changed, 38 insertions, 318 deletions
diff --git a/benchmark/README.md b/benchmark/README.md
index 6fd9a97bdfb..17c733e6eb0 100644
--- a/benchmark/README.md
+++ b/benchmark/README.md
@@ -235,12 +235,3 @@ it returns to accomplish what they need. This function reports timing
data to the parent process (usually created by running `compare.js`, `run.js` or
`scatter.js`).
-### v8ForceOptimization(method[, ...args])
-
-Force V8 to mark the `method` for optimization with the native function
-`%OptimizeFunctionOnNextCall()` and return the optimization status
-after that.
-
-It can be used to prevent the benchmark from getting disrupted by the optimizer
-kicking in halfway through. However, this could result in a less effective
-optimization. In general, only use it if you know what it actually does.
diff --git a/benchmark/buffers/buffer-compare-instance-method.js b/benchmark/buffers/buffer-compare-instance-method.js
index bb07326f3de..ff3bc4c1abd 100644
--- a/benchmark/buffers/buffer-compare-instance-method.js
+++ b/benchmark/buffers/buffer-compare-instance-method.js
@@ -1,6 +1,5 @@
'use strict';
const common = require('../common.js');
-const v8 = require('v8');
const bench = common.createBenchmark(main, {
size: [16, 512, 1024, 4096, 16386],
@@ -20,7 +19,6 @@ function main(conf) {
b1[size - 1] = 'b'.charCodeAt(0);
- // Force optimization before starting the benchmark
switch (args) {
case 2:
b0.compare(b1, 0);
@@ -37,8 +35,6 @@ function main(conf) {
default:
b0.compare(b1);
}
- v8.setFlagsFromString('--allow_natives_syntax');
- eval('%OptimizeFunctionOnNextCall(b0.compare)');
switch (args) {
case 2:
b0.compare(b1, 0);
diff --git a/benchmark/buffers/buffer-compare-offset.js b/benchmark/buffers/buffer-compare-offset.js
index 17b36f82883..fd8c96dbce0 100644
--- a/benchmark/buffers/buffer-compare-offset.js
+++ b/benchmark/buffers/buffer-compare-offset.js
@@ -1,6 +1,5 @@
'use strict';
const common = require('../common.js');
-const v8 = require('v8');
const bench = common.createBenchmark(main, {
method: ['offset', 'slice'],
@@ -9,18 +8,6 @@ const bench = common.createBenchmark(main, {
});
function compareUsingSlice(b0, b1, len, iter) {
-
- // Force optimization before starting the benchmark
- Buffer.compare(b0.slice(1, len), b1.slice(1, len));
- v8.setFlagsFromString('--allow_natives_syntax');
- eval('%OptimizeFunctionOnNextCall(Buffer.compare)');
- eval('%OptimizeFunctionOnNextCall(b0.slice)');
- eval('%OptimizeFunctionOnNextCall(b1.slice)');
- Buffer.compare(b0.slice(1, len), b1.slice(1, len));
- doCompareUsingSlice(b0, b1, len, iter);
-}
-
-function doCompareUsingSlice(b0, b1, len, iter) {
var i;
bench.start();
for (i = 0; i < iter; i++)
@@ -29,16 +16,6 @@ function doCompareUsingSlice(b0, b1, len, iter) {
}
function compareUsingOffset(b0, b1, len, iter) {
- len = len + 1;
- // Force optimization before starting the benchmark
- b0.compare(b1, 1, len, 1, len);
- v8.setFlagsFromString('--allow_natives_syntax');
- eval('%OptimizeFunctionOnNextCall(b0.compare)');
- b0.compare(b1, 1, len, 1, len);
- doCompareUsingOffset(b0, b1, len, iter);
-}
-
-function doCompareUsingOffset(b0, b1, len, iter) {
var i;
bench.start();
for (i = 0; i < iter; i++)
diff --git a/benchmark/buffers/buffer-swap.js b/benchmark/buffers/buffer-swap.js
index c6d7db470bc..71e08890910 100644
--- a/benchmark/buffers/buffer-swap.js
+++ b/benchmark/buffers/buffer-swap.js
@@ -1,7 +1,6 @@
'use strict';
const common = require('../common.js');
-const v8 = require('v8');
const bench = common.createBenchmark(main, {
aligned: ['true', 'false'],
@@ -81,9 +80,7 @@ function main(conf) {
const buf = createBuffer(len, aligned === 'true');
const bufferSwap = genMethod(method);
- v8.setFlagsFromString('--allow_natives_syntax');
- eval('%OptimizeFunctionOnNextCall(bufferSwap)');
-
+ bufferSwap(n, buf);
bench.start();
bufferSwap(n, buf);
bench.end(n);
diff --git a/benchmark/common.js b/benchmark/common.js
index 6a9b2ba0f71..7ce180fdb7f 100644
--- a/benchmark/common.js
+++ b/benchmark/common.js
@@ -229,17 +229,3 @@ Benchmark.prototype.report = function(rate, elapsed) {
type: 'report'
});
};
-
-exports.v8ForceOptimization = function(method) {
- if (typeof method !== 'function')
- return;
-
- const v8 = require('v8');
- v8.setFlagsFromString('--allow_natives_syntax');
-
- const args = Array.prototype.slice.call(arguments, 1);
- method.apply(null, args);
- eval('%OptimizeFunctionOnNextCall(method)');
- method.apply(null, args);
- return eval('%GetOptimizationStatus(method)');
-};
diff --git a/benchmark/crypto/get-ciphers.js b/benchmark/crypto/get-ciphers.js
index 257c9af2fd5..3f5ad17ad38 100644
--- a/benchmark/crypto/get-ciphers.js
+++ b/benchmark/crypto/get-ciphers.js
@@ -12,9 +12,12 @@ function main(conf) {
const v = conf.v;
const method = require(v).getCiphers;
var i = 0;
-
- common.v8ForceOptimization(method);
+ // first call to getChipers will dominate the results
+ if (n > 1) {
+ for (; i < n; i++)
+ method();
+ }
bench.start();
- for (; i < n; i++) method();
+ for (i = 0; i < n; i++) method();
bench.end(n);
}
diff --git a/benchmark/es/defaultparams-bench.js b/benchmark/es/defaultparams-bench.js
index 1b962cfb393..56d04cd95bb 100644
--- a/benchmark/es/defaultparams-bench.js
+++ b/benchmark/es/defaultparams-bench.js
@@ -22,8 +22,6 @@ function defaultParams(x = 1, y = 2) {
function runOldStyleDefaults(n) {
- common.v8ForceOptimization(oldStyleDefaults);
-
var i = 0;
bench.start();
for (; i < n; i++)
@@ -33,8 +31,6 @@ function runOldStyleDefaults(n) {
function runDefaultParams(n) {
- common.v8ForceOptimization(defaultParams);
-
var i = 0;
bench.start();
for (; i < n; i++)
diff --git a/benchmark/es/restparams-bench.js b/benchmark/es/restparams-bench.js
index 0ff9c48dedc..f5c49dd969b 100644
--- a/benchmark/es/restparams-bench.js
+++ b/benchmark/es/restparams-bench.js
@@ -35,8 +35,6 @@ function useArguments() {
function runCopyArguments(n) {
- common.v8ForceOptimization(copyArguments, 1, 2, 'a', 'b');
-
var i = 0;
bench.start();
for (; i < n; i++)
@@ -46,8 +44,6 @@ function runCopyArguments(n) {
function runRestArguments(n) {
- common.v8ForceOptimization(restArguments, 1, 2, 'a', 'b');
-
var i = 0;
bench.start();
for (; i < n; i++)
@@ -57,8 +53,6 @@ function runRestArguments(n) {
function runUseArguments(n) {
- common.v8ForceOptimization(useArguments, 1, 2, 'a', 'b');
-
var i = 0;
bench.start();
for (; i < n; i++)
diff --git a/benchmark/misc/console.js b/benchmark/misc/console.js
index 9a08a411c51..9c5aec0eeeb 100644
--- a/benchmark/misc/console.js
+++ b/benchmark/misc/console.js
@@ -4,9 +4,6 @@ const common = require('../common.js');
const assert = require('assert');
const Writable = require('stream').Writable;
const util = require('util');
-const v8 = require('v8');
-
-v8.setFlagsFromString('--allow_natives_syntax');
const methods = [
'restAndSpread',
@@ -51,14 +48,7 @@ function usingArgumentsAndApplyC() {
nullStream.write(util.format.apply(null, arguments) + '\n');
}
-function optimize(method, ...args) {
- method(...args);
- eval(`%OptimizeFunctionOnNextCall(${method.name})`);
- method(...args);
-}
-
function runUsingRestAndConcat(n) {
- optimize(usingRestAndConcat, 'a', 1);
var i = 0;
bench.start();
@@ -70,7 +60,6 @@ function runUsingRestAndConcat(n) {
function runUsingRestAndSpread(n, concat) {
const method = concat ? usingRestAndSpreadC : usingRestAndSpreadTS;
- optimize(method, 'this is %s of %d', 'a', 1);
var i = 0;
bench.start();
@@ -82,7 +71,6 @@ function runUsingRestAndSpread(n, concat) {
function runUsingRestAndApply(n, concat) {
const method = concat ? usingRestAndApplyC : usingRestAndApplyTS;
- optimize(method, 'this is %s of %d', 'a', 1);
var i = 0;
bench.start();
@@ -94,7 +82,6 @@ function runUsingRestAndApply(n, concat) {
function runUsingArgumentsAndApply(n, concat) {
const method = concat ? usingArgumentsAndApplyC : usingArgumentsAndApplyTS;
- optimize(method, 'this is %s of %d', 'a', 1);
var i = 0;
bench.start();
diff --git a/benchmark/misc/punycode.js b/benchmark/misc/punycode.js
index f4d22557ac5..74ddadbb9da 100644
--- a/benchmark/misc/punycode.js
+++ b/benchmark/misc/punycode.js
@@ -42,16 +42,16 @@ function usingICU(val) {
}
function runPunycode(n, val) {
- common.v8ForceOptimization(usingPunycode, val);
var i = 0;
- bench.start();
for (; i < n; i++)
usingPunycode(val);
+ bench.start();
+ for (i = 0; i < n; i++)
+ usingPunycode(val);
bench.end(n);
}
function runICU(n, val) {
- common.v8ForceOptimization(usingICU, val);
var i = 0;
bench.start();
for (; i < n; i++)
diff --git a/benchmark/misc/util-extend-vs-object-assign.js b/benchmark/misc/util-extend-vs-object-assign.js
index caea42ce914..41c15d7d2ca 100644
--- a/benchmark/misc/util-extend-vs-object-assign.js
+++ b/benchmark/misc/util-extend-vs-object-assign.js
@@ -2,7 +2,6 @@
const common = require('../common.js');
const util = require('util');
-const v8 = require('v8');
const bench = common.createBenchmark(main, {
type: ['extend', 'assign'],
@@ -12,15 +11,11 @@ const bench = common.createBenchmark(main, {
function main(conf) {
let fn;
const n = conf.n | 0;
- let v8command;
if (conf.type === 'extend') {
fn = util._extend;
- v8command = '%OptimizeFunctionOnNextCall(util._extend)';
} else if (conf.type === 'assign') {
fn = Object.assign;
- // Object.assign is built-in, cannot be optimized
- v8command = '';
}
// Force-optimize the method to test so that the benchmark doesn't
@@ -28,9 +23,6 @@ function main(conf) {
for (var i = 0; i < conf.type.length * 10; i += 1)
fn({}, process.env);
- v8.setFlagsFromString('--allow_natives_syntax');
- eval(v8command);
-
var obj = new Proxy({}, { set: function(a, b, c) { return true; } });
bench.start();
diff --git a/benchmark/path/basename-posix.js b/benchmark/path/basename-posix.js
index 64da9017793..fc983c8074c 100644
--- a/benchmark/path/basename-posix.js
+++ b/benchmark/path/basename-posix.js
@@ -1,7 +1,6 @@
'use strict';
var common = require('../common.js');
var path = require('path');
-var v8 = require('v8');
var bench = common.createBenchmark(main, {
pathext: [
@@ -30,12 +29,6 @@ function main(conf) {
input = input.slice(0, extIdx);
}
- // Force optimization before starting the benchmark
- p.basename(input, ext);
- v8.setFlagsFromString('--allow_natives_syntax');
- eval('%OptimizeFunctionOnNextCall(p.basename)');
- p.basename(input, ext);
-
bench.start();
for (var i = 0; i < n; i++) {
p.basename(input, ext);
diff --git a/benchmark/path/basename-win32.js b/benchmark/path/basename-win32.js
index a6214598790..b493beb87c9 100644
--- a/benchmark/path/basename-win32.js
+++ b/benchmark/path/basename-win32.js
@@ -1,7 +1,6 @@
'use strict';
var common = require('../common.js');
var path = require('path');
-var v8 = require('v8');
var bench = common.createBenchmark(main, {
pathext: [
@@ -30,12 +29,6 @@ function main(conf) {
input = input.slice(0, extIdx);
}
- // Force optimization before starting the benchmark
- p.basename(input, ext);
- v8.setFlagsFromString('--allow_natives_syntax');
- eval('%OptimizeFunctionOnNextCall(p.basename)');
- p.basename(input, ext);
-
bench.start();
for (var i = 0; i < n; i++) {
p.basename(input, ext);
diff --git a/benchmark/path/dirname-posix.js b/benchmark/path/dirname-posix.js
index e7ea80ffa31..af77be5ac06 100644
--- a/benchmark/path/dirname-posix.js
+++ b/benchmark/path/dirname-posix.js
@@ -1,7 +1,6 @@
'use strict';
var common = require('../common.js');
var path = require('path');
-var v8 = require('v8');
var bench = common.createBenchmark(main, {
path: [
@@ -21,12 +20,6 @@ function main(conf) {
var p = path.posix;
var input = '' + conf.path;
- // Force optimization before starting the benchmark
- p.dirname(input);
- v8.setFlagsFromString('--allow_natives_syntax');
- eval('%OptimizeFunctionOnNextCall(p.dirname)');
- p.dirname(input);
-
bench.start();
for (var i = 0; i < n; i++) {
p.dirname(input);
diff --git a/benchmark/path/dirname-win32.js b/benchmark/path/dirname-win32.js
index 5cb0829437c..01d97d08e2a 100644
--- a/benchmark/path/dirname-win32.js
+++ b/benchmark/path/dirname-win32.js
@@ -1,7 +1,6 @@
'use strict';
var common = require('../common.js');
var path = require('path');
-var v8 = require('v8');
var bench = common.createBenchmark(main, {
path: [
@@ -21,12 +20,6 @@ function main(conf) {
var p = path.win32;
var input = '' + conf.path;
- // Force optimization before starting the benchmark
- p.dirname(input);
- v8.setFlagsFromString('--allow_natives_syntax');
- eval('%OptimizeFunctionOnNextCall(p.dirname)');
- p.dirname(input);
-
bench.start();
for (var i = 0; i < n; i++) {
p.dirname(input);
diff --git a/benchmark/path/extname-posix.js b/benchmark/path/extname-posix.js
index 61a1073158f..50c4e8f7927 100644
--- a/benchmark/path/extname-posix.js
+++ b/benchmark/path/extname-posix.js
@@ -1,7 +1,6 @@
'use strict';
var common = require('../common.js');
var path = require('path');
-var v8 = require('v8');
var bench = common.createBenchmark(main, {
path: [
@@ -24,12 +23,6 @@ function main(conf) {
var p = path.posix;
var input = '' + conf.path;
- // Force optimization before starting the benchmark
- p.extname(input);
- v8.setFlagsFromString('--allow_natives_syntax');
- eval('%OptimizeFunctionOnNextCall(p.extname)');
- p.extname(input);
-
bench.start();
for (var i = 0; i < n; i++) {
p.extname(input);
diff --git a/benchmark/path/extname-win32.js b/benchmark/path/extname-win32.js
index 67e53eab858..9c0df13ab46 100644
--- a/benchmark/path/extname-win32.js
+++ b/benchmark/path/extname-win32.js
@@ -1,7 +1,6 @@
'use strict';
var common = require('../common.js');
var path = require('path');
-var v8 = require('v8');
var bench = common.createBenchmark(main, {
path: [
@@ -24,12 +23,6 @@ function main(conf) {
var p = path.win32;
var input = '' + conf.path;
- // Force optimization before starting the benchmark
- p.extname(input);
- v8.setFlagsFromString('--allow_natives_syntax');
- eval('%OptimizeFunctionOnNextCall(p.extname)');
- p.extname(input);
-
bench.start();
for (var i = 0; i < n; i++) {
p.extname(input);
diff --git a/benchmark/path/format-posix.js b/benchmark/path/format-posix.js
index b30b58be411..ee78a6d5f30 100644
--- a/benchmark/path/format-posix.js
+++ b/benchmark/path/format-posix.js
@@ -1,7 +1,6 @@
'use strict';
var common = require('../common.js');
var path = require('path');
-var v8 = require('v8');
var bench = common.createBenchmark(main, {
props: [
@@ -22,12 +21,6 @@ function main(conf) {
name: props[4] || '',
};
- // Force optimization before starting the benchmark
- p.format(obj);
- v8.setFlagsFromString('--allow_natives_syntax');
- eval('%OptimizeFunctionOnNextCall(p.format)');
- p.format(obj);
-
bench.start();
for (var i = 0; i < n; i++) {
p.format(obj);
diff --git a/benchmark/path/format-win32.js b/benchmark/path/format-win32.js
index 7404f2e93e6..9ec981d6310 100644
--- a/benchmark/path/format-win32.js
+++ b/benchmark/path/format-win32.js
@@ -1,7 +1,6 @@
'use strict';
var common = require('../common.js');
var path = require('path');
-var v8 = require('v8');
var bench = common.createBenchmark(main, {
props: [
@@ -22,12 +21,6 @@ function main(conf) {
name: props[4] || '',
};
- // Force optimization before starting the benchmark
- p.format(obj);
- v8.setFlagsFromString('--allow_natives_syntax');
- eval('%OptimizeFunctionOnNextCall(p.format)');
- p.format(obj);
-
bench.start();
for (var i = 0; i < n; i++) {
p.format(obj);
diff --git a/benchmark/path/isAbsolute-posix.js b/benchmark/path/isAbsolute-posix.js
index fb8956c073b..22db751100c 100644
--- a/benchmark/path/isAbsolute-posix.js
+++ b/benchmark/path/isAbsolute-posix.js
@@ -1,7 +1,6 @@
'use strict';
var common = require('../common.js');
var path = require('path');
-var v8 = require('v8');
var bench = common.createBenchmark(main, {
path: [
@@ -19,12 +18,6 @@ function main(conf) {
var p = path.posix;
var input = '' + conf.path;
- // Force optimization before starting the benchmark
- p.isAbsolute(input);
- v8.setFlagsFromString('--allow_natives_syntax');
- eval('%OptimizeFunctionOnNextCall(p.isAbsolute)');
- p.isAbsolute(input);
-
bench.start();
for (var i = 0; i < n; i++) {
p.isAbsolute(input);
diff --git a/benchmark/path/isAbsolute-win32.js b/benchmark/path/isAbsolute-win32.js
index 57fb8b8999e..a565da8e566 100644
--- a/benchmark/path/isAbsolute-win32.js
+++ b/benchmark/path/isAbsolute-win32.js
@@ -1,7 +1,6 @@
'use strict';
var common = require('../common.js');
var path = require('path');
-var v8 = require('v8');
var bench = common.createBenchmark(main, {
path: [
@@ -20,12 +19,6 @@ function main(conf) {
var p = path.win32;
var input = '' + conf.path;
- // Force optimization before starting the benchmark
- p.isAbsolute(input);
- v8.setFlagsFromString('--allow_natives_syntax');
- eval('%OptimizeFunctionOnNextCall(p.isAbsolute)');
- p.isAbsolute(input);
-
bench.start();
for (var i = 0; i < n; i++) {
p.isAbsolute(input);
diff --git a/benchmark/path/join-posix.js b/benchmark/path/join-posix.js
index 1222f4050aa..a7cf3772522 100644
--- a/benchmark/path/join-posix.js
+++ b/benchmark/path/join-posix.js
@@ -1,7 +1,6 @@
'use strict';
var common = require('../common.js');
var path = require('path');
-var v8 = require('v8');
var bench = common.createBenchmark(main, {
paths: [
@@ -15,12 +14,6 @@ function main(conf) {
var p = path.posix;
var args = ('' + conf.paths).split('|');
- // Force optimization before starting the benchmark
- p.join.apply(null, args);
- v8.setFlagsFromString('--allow_natives_syntax');
- eval('%OptimizeFunctionOnNextCall(p.join)');
- p.join.apply(null, args);
-
bench.start();
for (var i = 0; i < n; i++) {
p.join.apply(null, args);
diff --git a/benchmark/path/join-win32.js b/benchmark/path/join-win32.js
index 86801859d56..18c1e802a6b 100644
--- a/benchmark/path/join-win32.js
+++ b/benchmark/path/join-win32.js
@@ -1,7 +1,6 @@
'use strict';
var common = require('../common.js');
var path = require('path');
-var v8 = require('v8');
var bench = common.createBenchmark(main, {
paths: [
@@ -15,12 +14,6 @@ function main(conf) {
var p = path.win32;
var args = ('' + conf.paths).split('|');
- // Force optimization before starting the benchmark
- p.join.apply(null, args);
- v8.setFlagsFromString('--allow_natives_syntax');
- eval('%OptimizeFunctionOnNextCall(p.join)');
- p.join.apply(null, args);
-
bench.start();
for (var i = 0; i < n; i++) {
p.join.apply(null, args);
diff --git a/benchmark/path/makeLong-win32.js b/benchmark/path/makeLong-win32.js
index d4b29d7e709..fe5da425a5c 100644
--- a/benchmark/path/makeLong-win32.js
+++ b/benchmark/path/makeLong-win32.js
@@ -1,7 +1,6 @@
'use strict';
var common = require('../common.js');
var path = require('path');
-var v8 = require('v8');
var bench = common.createBenchmark(main, {
path: [
@@ -18,12 +17,6 @@ function main(conf) {
var p = path.win32;
var input = '' + conf.path;
- // Force optimization before starting the benchmark
- p._makeLong(input);
- v8.setFlagsFromString('--allow_natives_syntax');
- eval('%OptimizeFunctionOnNextCall(p._makeLong)');
- p._makeLong(input);
-
bench.start();
for (var i = 0; i < n; i++) {
p._makeLong(input);
diff --git a/benchmark/path/normalize-posix.js b/benchmark/path/normalize-posix.js
index 19d6461ca51..aec703cbe21 100644
--- a/benchmark/path/normalize-posix.js
+++ b/benchmark/path/normalize-posix.js
@@ -1,7 +1,6 @@
'use strict';
var common = require('../common.js');
var path = require('path');
-var v8 = require('v8');
var bench = common.createBenchmark(main, {
path: [
@@ -20,12 +19,6 @@ function main(conf) {
var p = path.posix;
var input = '' + conf.path;
- // Force optimization before starting the benchmark
- p.normalize(input);
- v8.setFlagsFromString('--allow_natives_syntax');
- eval('%OptimizeFunctionOnNextCall(p.normalize)');
- p.normalize(input);
-
bench.start();
for (var i = 0; i < n; i++) {
p.normalize(input);
diff --git a/benchmark/path/normalize-win32.js b/benchmark/path/normalize-win32.js
index 119f9797681..356d399c351 100644
--- a/benchmark/path/normalize-win32.js
+++ b/benchmark/path/normalize-win32.js
@@ -1,7 +1,6 @@
'use strict';
var common = require('../common.js');
var path = require('path');
-var v8 = require('v8');
var bench = common.createBenchmark(main, {
path: [
@@ -20,12 +19,6 @@ function main(conf) {
var p = path.win32;
var input = '' + conf.path;
- // Force optimization before starting the benchmark
- p.normalize(input);
- v8.setFlagsFromString('--allow_natives_syntax');
- eval('%OptimizeFunctionOnNextCall(p.normalize)');
- p.normalize(input);
-
bench.start();
for (var i = 0; i < n; i++) {
p.normalize(input);
diff --git a/benchmark/path/parse-posix.js b/benchmark/path/parse-posix.js
index ee4306fcd27..997eec0452b 100644
--- a/benchmark/path/parse-posix.js
+++ b/benchmark/path/parse-posix.js
@@ -1,7 +1,6 @@
'use strict';
var common = require('../common.js');
var path = require('path');
-var v8 = require('v8');
var bench = common.createBenchmark(main, {
path: [
@@ -21,15 +20,12 @@ function main(conf) {
var p = path.posix;
var input = '' + conf.path;
- // Force optimization before starting the benchmark
- p.parse(input);
- v8.setFlagsFromString('--allow_natives_syntax');
- eval('%OptimizeFunctionOnNextCall(p.parse)');
- p.parse(input);
-
- bench.start();
for (var i = 0; i < n; i++) {
p.parse(input);
}
+ bench.start();
+ for (i = 0; i < n; i++) {
+ p.parse(input);
+ }
bench.end(n);
}
diff --git a/benchmark/path/parse-win32.js b/benchmark/path/parse-win32.js
index 5a7b80f0ddb..2a95f758665 100644
--- a/benchmark/path/parse-win32.js
+++ b/benchmark/path/parse-win32.js
@@ -1,7 +1,6 @@
'use strict';
var common = require('../common.js');
var path = require('path');
-var v8 = require('v8');
var bench = common.createBenchmark(main, {
path: [
@@ -22,15 +21,12 @@ function main(conf) {
var p = path.win32;
var input = '' + conf.path;
- // Force optimization before starting the benchmark
- p.parse(input);
- v8.setFlagsFromString('--allow_natives_syntax');
- eval('%OptimizeFunctionOnNextCall(p.parse)');
- p.parse(input);
-
- bench.start();
for (var i = 0; i < n; i++) {
p.parse(input);
}
+ bench.start();
+ for (i = 0; i < n; i++) {
+ p.parse(input);
+ }
bench.end(n);
}
diff --git a/benchmark/path/relative-posix.js b/benchmark/path/relative-posix.js
index 7544fb2dc67..492b73c3e89 100644
--- a/benchmark/path/relative-posix.js
+++ b/benchmark/path/relative-posix.js
@@ -1,7 +1,6 @@
'use strict';
var common = require('../common.js');
var path = require('path');
-var v8 = require('v8');
var bench = common.createBenchmark(main, {
paths: [
@@ -26,15 +25,12 @@ function main(conf) {
to = from.slice(delimIdx + 1);
from = from.slice(0, delimIdx);
}
-
- // Force optimization before starting the benchmark
- p.relative(from, to);
- v8.setFlagsFromString('--allow_natives_syntax');
- eval('%OptimizeFunctionOnNextCall(p.relative)');
- p.relative(from, to);
+ for (var i = 0; i < n; i++) {
+ p.relative(from, to);
+ }
bench.start();
- for (var i = 0; i < n; i++) {
+ for (i = 0; i < n; i++) {
p.relative(from, to);
}
bench.end(n);
diff --git a/benchmark/path/relative-win32.js b/benchmark/path/relative-win32.js
index 92531959c1c..7e7620299eb 100644
--- a/benchmark/path/relative-win32.js
+++ b/benchmark/path/relative-win32.js
@@ -1,7 +1,6 @@
'use strict';
var common = require('../common.js');
var path = require('path');
-var v8 = require('v8');
var bench = common.createBenchmark(main, {
paths: [
@@ -25,14 +24,13 @@ function main(conf) {
from = from.slice(0, delimIdx);
}
- // Force optimization before starting the benchmark
- p.relative(from, to);
- v8.setFlagsFromString('--allow_natives_syntax');
- eval('%OptimizeFunctionOnNextCall(p.relative)');
- p.relative(from, to);
+ // Warmup
+ for (var i = 0; i < n; i++) {
+ p.relative(from, to);
+ }
bench.start();
- for (var i = 0; i < n; i++) {
+ for (i = 0; i < n; i++) {
p.relative(from, to);
}
bench.end(n);
diff --git a/benchmark/path/resolve-posix.js b/benchmark/path/resolve-posix.js
index 93e5b82191a..d1364a8ac25 100644
--- a/benchmark/path/resolve-posix.js
+++ b/benchmark/path/resolve-posix.js
@@ -1,7 +1,6 @@
'use strict';
var common = require('../common.js');
var path = require('path');
-var v8 = require('v8');
var bench = common.createBenchmark(main, {
paths: [
@@ -18,12 +17,6 @@ function main(conf) {
var p = path.posix;
var args = ('' + conf.paths).split('|');
- // Force optimization before starting the benchmark
- p.resolve.apply(null, args);
- v8.setFlagsFromString('--allow_natives_syntax');
- eval('%OptimizeFunctionOnNextCall(p.resolve)');
- p.resolve.apply(null, args);
-
bench.start();
for (var i = 0; i < n; i++) {
p.resolve.apply(null, args);
diff --git a/benchmark/path/resolve-win32.js b/benchmark/path/resolve-win32.js
index dc0eb30e930..6dfb38167c9 100644
--- a/benchmark/path/resolve-win32.js
+++ b/benchmark/path/resolve-win32.js
@@ -1,7 +1,6 @@
'use strict';
var common = require('../common.js');
var path = require('path');
-var v8 = require('v8');
var bench = common.createBenchmark(main, {
paths: [
@@ -18,12 +17,6 @@ function main(conf) {
var p = path.win32;
var args = ('' + conf.paths).split('|');
- // Force optimization before starting the benchmark
- p.resolve.apply(null, args);
- v8.setFlagsFromString('--allow_natives_syntax');
- eval('%OptimizeFunctionOnNextCall(p.resolve)');
- p.resolve.apply(null, args);
-
bench.start();
for (var i = 0; i < n; i++) {
p.resolve.apply(null, args);
diff --git a/benchmark/querystring/querystring-parse.js b/benchmark/querystring/querystring-parse.js
index 2e2ec1417bc..888ce6320a3 100644
--- a/benchmark/querystring/querystring-parse.js
+++ b/benchmark/querystring/querystring-parse.js
@@ -1,8 +1,6 @@
'use strict';
var common = require('../common.js');
var querystring = require('querystring');
-var v8 = require('v8');
-
var inputs = require('../fixtures/url-inputs.js').searchParams;
var bench = common.createBenchmark(main, {
@@ -14,21 +12,18 @@ function main(conf) {
var type = conf.type;
var n = conf.n | 0;
var input = inputs[type];
+ var i;
- // Force-optimize querystring.parse() so that the benchmark doesn't get
+ // Optimize querystring.parse() so that the benchmark doesn't get
// disrupted by the optimizer kicking in halfway through.
- v8.setFlagsFromString('--allow_natives_syntax');
if (type !== 'multicharsep') {
- querystring.parse(input);
- eval('%OptimizeFunctionOnNextCall(querystring.parse)');
- querystring.parse(input);
+ for (i = 0; i < n; i += 1)
+ querystring.parse(input);
} else {
- querystring.parse(input, '&&&&&&&&&&');
- eval('%OptimizeFunctionOnNextCall(querystring.parse)');
- querystring.parse(input, '&&&&&&&&&&');
+ for (i = 0; i < n; i += 1)
+ querystring.parse(input, '&&&&&&&&&&');
}
- var i;
if (type !== 'multicharsep') {
bench.start();
for (i = 0; i < n; i += 1)
diff --git a/benchmark/querystring/querystring-stringify.js b/benchmark/querystring/querystring-stringify.js
index 5870a690555..7e31a49e99e 100644
--- a/benchmark/querystring/querystring-stringify.js
+++ b/benchmark/querystring/querystring-stringify.js
@@ -1,7 +1,6 @@
'use strict';
var common = require('../common.js');
var querystring = require('querystring');
-var v8 = require('v8');
var bench = common.createBenchmark(main, {
type: ['noencode', 'encodemany', 'encodelast'],
@@ -36,10 +35,6 @@ function main(conf) {
for (var name in inputs)
querystring.stringify(inputs[name]);
- v8.setFlagsFromString('--allow_natives_syntax');
- eval('%OptimizeFunctionOnNextCall(querystring.stringify)');
- querystring.stringify(input);
-
bench.start();
for (var i = 0; i < n; i += 1)
querystring.stringify(input);
diff --git a/benchmark/streams/readable-bigread.js b/benchmark/streams/readable-bigread.js
index 50f10c44119..34d478fb478 100644
--- a/benchmark/streams/readable-bigread.js
+++ b/benchmark/streams/readable-bigread.js
@@ -1,7 +1,6 @@
'use strict';
const common = require('../common');
-const v8 = require('v8');
const Readable = require('stream').Readable;
const bench = common.createBenchmark(main, {
@@ -15,13 +14,6 @@ function main(conf) {
function noop() {}
s._read = noop;
- // Force optimization before starting the benchmark
- s.push(b);
- v8.setFlagsFromString('--allow_natives_syntax');
- eval('%OptimizeFunctionOnNextCall(s.read)');
- s.push(b);
- while (s.read(128));
-
bench.start();
for (var k = 0; k < n; ++k) {
for (var i = 0; i < 1e4; ++i)
diff --git a/benchmark/streams/readable-bigunevenread.js b/benchmark/streams/readable-bigunevenread.js
index ce6e41c5d30..d176166ae4f 100644
--- a/benchmark/streams/readable-bigunevenread.js
+++ b/benchmark/streams/readable-bigunevenread.js
@@ -1,7 +1,6 @@
'use strict';
const common = require('../common');
-const v8 = require('v8');
const Readable = require('stream').Readable;
const bench = common.createBenchmark(main, {
@@ -15,13 +14,6 @@ function main(conf) {
function noop() {}
s._read = noop;
- // Force optimization before starting the benchmark
- s.push(b);
- v8.setFlagsFromString('--allow_natives_syntax');
- eval('%OptimizeFunctionOnNextCall(s.read)');
- s.push(b);
- while (s.read(106));
-
bench.start();
for (var k = 0; k < n; ++k) {
for (var i = 0; i < 1e4; ++i)
diff --git a/benchmark/streams/readable-boundaryread.js b/benchmark/streams/readable-boundaryread.js
index 93a6616361b..1a0b7eb7ac9 100644
--- a/benchmark/streams/readable-boundaryread.js
+++ b/benchmark/streams/readable-boundaryread.js
@@ -1,7 +1,6 @@
'use strict';
const common = require('../common');
-const v8 = require('v8');
const Readable = require('stream').Readable;
const bench = common.createBenchmark(main, {
@@ -15,14 +14,6 @@ function main(conf) {
function noop() {}
s._read = noop;
- // Force optimization before starting the benchmark
- s.push(b);
- v8.setFlagsFromString('--allow_natives_syntax');
- eval('%OptimizeFunctionOnNextCall(s.push)');
- eval('%OptimizeFunctionOnNextCall(s.read)');
- s.push(b);
- while (s.read(32));
-
bench.start();
for (var k = 0; k < n; ++k) {
for (var i = 0; i < 1e4; ++i)
diff --git a/benchmark/streams/readable-readall.js b/benchmark/streams/readable-readall.js
index 07626fd7978..be34afbeabc 100644
--- a/benchmark/streams/readable-readall.js
+++ b/benchmark/streams/readable-readall.js
@@ -1,7 +1,6 @@
'use strict';
const common = require('../common');
-const v8 = require('v8');
const Readable = require('stream').Readable;
const bench = common.createBenchmark(main, {
@@ -15,13 +14,6 @@ function main(conf) {
function noop() {}
s._read = noop;
- // Force optimization before starting the benchmark
- s.push(b);
- v8.setFlagsFromString('--allow_natives_syntax');
- eval('%OptimizeFunctionOnNextCall(s.read)');
- s.push(b);
- while (s.read());
-
bench.start();
for (var k = 0; k < n; ++k) {
for (var i = 0; i < 1e4; ++i)
diff --git a/benchmark/streams/readable-unevenread.js b/benchmark/streams/readable-unevenread.js
index 4a69bd97a94..ebbc727ad23 100644
--- a/benchmark/streams/readable-unevenread.js
+++ b/benchmark/streams/readable-unevenread.js
@@ -1,7 +1,6 @@
'use strict';
const common = require('../common');
-const v8 = require('v8');
const Readable = require('stream').Readable;
const bench = common.createBenchmark(main, {
@@ -15,13 +14,6 @@ function main(conf) {
function noop() {}
s._read = noop;
- // Force optimization before starting the benchmark
- s.push(b);
- v8.setFlagsFromString('--allow_natives_syntax');
- eval('%OptimizeFunctionOnNextCall(s.read)');
- s.push(b);
- while (s.read(12));
-
bench.start();
for (var k = 0; k < n; ++k) {
for (var i = 0; i < 1e4; ++i)
diff --git a/benchmark/tls/convertprotocols.js b/benchmark/tls/convertprotocols.js
index 32da0fe6fde..5d561455051 100644
--- a/benchmark/tls/convertprotocols.js
+++ b/benchmark/tls/convertprotocols.js
@@ -12,8 +12,11 @@ function main(conf) {
var i = 0;
var m = {};
- common.v8ForceOptimization(
- tls.convertNPNProtocols, ['ABC', 'XYZ123', 'FOO'], m);
+ // First call dominates results
+ if (n > 1) {
+ tls.convertNPNProtocols(['ABC', 'XYZ123', 'FOO'], m);
+ m = {};
+ }
bench.start();
for (; i < n; i++) tls.convertNPNProtocols(['ABC', 'XYZ123', 'FOO'], m);
bench.end(n);
diff --git a/benchmark/url/url-format.js b/benchmark/url/url-format.js
index 886958406b9..771786d3350 100644
--- a/benchmark/url/url-format.js
+++ b/benchmark/url/url-format.js
@@ -1,7 +1,6 @@
'use strict';
const common = require('../common.js');
const url = require('url');
-const v8 = require('v8');
const inputs = {
slashes: {slashes: true, host: 'localhost'},
@@ -24,9 +23,6 @@ function main(conf) {
for (const name in inputs)
url.format(inputs[name]);
- v8.setFlagsFromString('--allow_natives_syntax');
- eval('%OptimizeFunctionOnNextCall(url.format)');
-
bench.start();
for (var i = 0; i < n; i += 1)
url.format(input);
diff --git a/benchmark/url/url-resolve.js b/benchmark/url/url-resolve.js
index 4335511ca6d..421a70ef6d5 100644
--- a/benchmark/url/url-resolve.js
+++ b/benchmark/url/url-resolve.js
@@ -1,7 +1,6 @@
'use strict';
const common = require('../common.js');
const url = require('url');
-const v8 = require('v8');
const hrefs = require('../fixtures/url-inputs.js').urls;
hrefs.noscheme = 'some.ran/dom/url.thing?oh=yes#whoo';
@@ -24,12 +23,6 @@ function main(conf) {
const href = hrefs[conf.href];
const path = paths[conf.path];
- // Force-optimize url.resolve() so that the benchmark doesn't get
- // disrupted by the optimizer kicking in halfway through.
- url.resolve(href, path);
- v8.setFlagsFromString('--allow_natives_syntax');
- eval('%OptimizeFunctionOnNextCall(url.resolve)');
-
bench.start();
for (var i = 0; i < n; i += 1)
url.resolve(href, path);
diff --git a/benchmark/util/format.js b/benchmark/util/format.js
index 8040554ba08..82e25b4c4c8 100644
--- a/benchmark/util/format.js
+++ b/benchmark/util/format.js
@@ -2,7 +2,6 @@
const util = require('util');
const common = require('../common');
-const v8 = require('v8');
const types = [
'string',
'number',
@@ -29,12 +28,6 @@ function main(conf) {
const input = inputs[type];
- v8.setFlagsFromString('--allow_natives_syntax');
-
- util.format(input[0], input[1]);
- eval('%OptimizeFunctionOnNextCall(util.format)');
- util.format(input[0], input[1]);
-
bench.start();
for (var i = 0; i < n; i++) {
util.format(input[0], input[1]);