From 57b5ce1d8ed5c64d9ffcca1f97c8d58b9bb41e19 Mon Sep 17 00:00:00 2001 From: Bartosz Sosnowski Date: Wed, 1 Mar 2017 12:45:05 +0100 Subject: [PATCH] benchmark: remove querystring forced optimization This removes all instances of %OptimizeFunctionOnNextCall from querystring benchmarks PR-URL: https://github.com/nodejs/node/pull/9615 Reviewed-By: James M Snell Reviewed-By: Matteo Collina --- benchmark/querystring/querystring-parse.js | 15 ++------------- benchmark/querystring/querystring-stringify.js | 5 ----- 2 files changed, 2 insertions(+), 18 deletions(-) diff --git a/benchmark/querystring/querystring-parse.js b/benchmark/querystring/querystring-parse.js index a44c3879bd63c0..eacbd7f92aa337 100644 --- a/benchmark/querystring/querystring-parse.js +++ b/benchmark/querystring/querystring-parse.js @@ -1,7 +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, { @@ -9,23 +8,13 @@ var bench = common.createBenchmark(main, { n: [1e6], }); -// A deopt followed by a reopt of main() can happen right when the timed loop -// starts, which seems to have a noticeable effect on the benchmark results. -// So we explicitly disable optimization of main() to avoid this potential -// issue. -v8.setFlagsFromString('--allow_natives_syntax'); -eval('%NeverOptimizeFunction(main)'); - function main(conf) { var type = conf.type; var n = conf.n | 0; var input = inputs[type]; var i; - - // Note: we do *not* use OptimizeFunctionOnNextCall() here because currently - // it causes a deopt followed by a reopt, which could make its way into the - // timed loop. Instead, just execute the function a "sufficient" number of - // times before the timed loop to ensure the function is optimized just once. + // Execute the function a "sufficient" number of times before the timed + // loop to ensure the function is optimized just once. if (type === 'multicharsep') { for (i = 0; i < n; i += 1) querystring.parse(input, '&&&&&&&&&&'); diff --git a/benchmark/querystring/querystring-stringify.js b/benchmark/querystring/querystring-stringify.js index 5870a690555a0a..7e31a49e99e54c 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);