diff options
author | Rich Trott <rtrott@gmail.com> | 2016-06-09 11:07:21 -0700 |
---|---|---|
committer | Rich Trott <rtrott@gmail.com> | 2016-06-13 16:17:22 -0700 |
commit | 08ea9ee56d0223fc9214821c75a72ba94fe17a74 (patch) | |
tree | 0f01961ca88b1e83b57814b4f7628cdfd4b74a6c /benchmark/url | |
parent | e2e615e87e52773274619d0167716a766c16ac64 (diff) | |
download | node-new-08ea9ee56d0223fc9214821c75a72ba94fe17a74.tar.gz |
benchmark: add benchmark for url.format()
PR-URL: https://github.com/nodejs/node/pull/7250
Reviewed-By: Brian White <mscdex@mscdex.net>
Diffstat (limited to 'benchmark/url')
-rw-r--r-- | benchmark/url/url-format.js | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/benchmark/url/url-format.js b/benchmark/url/url-format.js new file mode 100644 index 0000000000..3f7df8a0bc --- /dev/null +++ b/benchmark/url/url-format.js @@ -0,0 +1,33 @@ +'use strict'; +const common = require('../common.js'); +const url = require('url'); +const v8 = require('v8'); + +const bench = common.createBenchmark(main, { + type: 'one two'.split(' '), + n: [25e6] +}); + +function main(conf) { + const type = conf.type; + const n = conf.n | 0; + + const inputs = { + one: {slashes: true, host: 'localhost'}, + two: {protocol: 'file:', pathname: '/foo'}, + }; + const input = inputs[type] || ''; + + // Force-optimize url.format() so that the benchmark doesn't get + // disrupted by the optimizer kicking in halfway through. + 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); + bench.end(n); +} |