diff --git a/benchmark/assert/deepequal-prims-and-objs-big-array.js b/benchmark/assert/deepequal-prims-and-objs-big-array.js index d8d2b57331f7ef..dc18d959bbce2b 100644 --- a/benchmark/assert/deepequal-prims-and-objs-big-array.js +++ b/benchmark/assert/deepequal-prims-and-objs-big-array.js @@ -1,22 +1,25 @@ 'use strict'; var common = require('../common.js'); var assert = require('assert'); + +const primValues = { + 'null': null, + 'undefined': undefined, + 'string': 'a', + 'number': 1, + 'boolean': true, + 'object': { 0: 'a' }, + 'array': [1, 2, 3], + 'new-array': new Array([1, 2, 3]) +}; + var bench = common.createBenchmark(main, { - prim: [ - null, - undefined, - 'a', - 1, - true, - {0: 'a'}, - [1, 2, 3], - new Array([1, 2, 3]) - ], + prim: Object.keys(primValues), n: [25] }); function main(conf) { - var prim = conf.prim; + var prim = primValues[conf.prim]; var n = +conf.n; var primArray; var primArrayCompare; diff --git a/benchmark/assert/deepequal-prims-and-objs-big-loop.js b/benchmark/assert/deepequal-prims-and-objs-big-loop.js index 5f0519bb3b45ad..3c76a586f7d5fb 100644 --- a/benchmark/assert/deepequal-prims-and-objs-big-loop.js +++ b/benchmark/assert/deepequal-prims-and-objs-big-loop.js @@ -1,22 +1,25 @@ 'use strict'; var common = require('../common.js'); var assert = require('assert'); + +const primValues = { + 'null': null, + 'undefined': undefined, + 'string': 'a', + 'number': 1, + 'boolean': true, + 'object': { 0: 'a' }, + 'array': [1, 2, 3], + 'new-array': new Array([1, 2, 3]) +}; + var bench = common.createBenchmark(main, { - prim: [ - null, - undefined, - 'a', - 1, - true, - {0: 'a'}, - [1, 2, 3], - new Array([1, 2, 3]) - ], + prim: Object.keys(primValues), n: [1e5] }); function main(conf) { - var prim = conf.prim; + var prim = primValues[conf.prim]; var n = +conf.n; var x; diff --git a/benchmark/buffers/buffer-read.js b/benchmark/buffers/buffer-read.js index e50de84b043af7..47affeee79edad 100644 --- a/benchmark/buffers/buffer-read.js +++ b/benchmark/buffers/buffer-read.js @@ -2,7 +2,7 @@ var common = require('../common.js'); var bench = common.createBenchmark(main, { - noAssert: [false, true], + noAssert: ['false', 'true'], buffer: ['fast', 'slow'], type: ['UInt8', 'UInt16LE', 'UInt16BE', 'UInt32LE', 'UInt32BE', diff --git a/benchmark/buffers/buffer-tostring.js b/benchmark/buffers/buffer-tostring.js index 948052042d677b..97f5fb12294d2a 100644 --- a/benchmark/buffers/buffer-tostring.js +++ b/benchmark/buffers/buffer-tostring.js @@ -3,13 +3,13 @@ const common = require('../common.js'); const bench = common.createBenchmark(main, { - arg: [true, false], + arg: ['true', 'false'], len: [0, 1, 64, 1024], n: [1e7] }); function main(conf) { - const arg = conf.arg; + const arg = conf.arg === 'true'; const len = conf.len | 0; const n = conf.n | 0; const buf = Buffer(len).fill(42); diff --git a/benchmark/buffers/buffer-write.js b/benchmark/buffers/buffer-write.js index 22383319d9ea30..657cebfacb5723 100644 --- a/benchmark/buffers/buffer-write.js +++ b/benchmark/buffers/buffer-write.js @@ -1,7 +1,7 @@ 'use strict'; var common = require('../common.js'); var bench = common.createBenchmark(main, { - noAssert: [false, true], + noAssert: ['false', 'true'], buffer: ['fast', 'slow'], type: ['UInt8', 'UInt16LE', 'UInt16BE', 'UInt32LE', 'UInt32BE', diff --git a/benchmark/misc/child-process-read.js b/benchmark/child_process/child-process-read.js similarity index 100% rename from benchmark/misc/child-process-read.js rename to benchmark/child_process/child-process-read.js diff --git a/benchmark/misc/spawn-echo.js b/benchmark/child_process/spawn-echo.js similarity index 100% rename from benchmark/misc/spawn-echo.js rename to benchmark/child_process/spawn-echo.js diff --git a/benchmark/common.js b/benchmark/common.js index 6878d41d1416bc..1ff4b50f8a409e 100644 --- a/benchmark/common.js +++ b/benchmark/common.js @@ -154,6 +154,10 @@ Benchmark.prototype._run = function() { var j = 0; set.forEach(function(s) { vals.forEach(function(val) { + if (typeof val !== 'number' && typeof val !== 'string') { + throw new TypeError(`configuration "${key}" had type ${typeof val}`); + } + newSet[j++] = s.concat(key + '=' + val); }); }); diff --git a/benchmark/misc/domain-fn-args.js b/benchmark/domain/domain-fn-args.js similarity index 100% rename from benchmark/misc/domain-fn-args.js rename to benchmark/domain/domain-fn-args.js diff --git a/benchmark/misc/url.js b/benchmark/misc/url.js deleted file mode 100644 index 78fe7b6c560ef2..00000000000000 --- a/benchmark/misc/url.js +++ /dev/null @@ -1,41 +0,0 @@ -'use strict'; -var url = require('url') -var n = 25 * 100; - -var urls = [ - 'http://nodejs.org/docs/latest/api/url.html#url_url_format_urlobj', - 'http://blog.nodejs.org/', - 'https://encrypted.google.com/search?q=url&q=site:npmjs.org&hl=en', - 'javascript:alert("node is awesome");', - 'some.ran/dom/url.thing?oh=yes#whoo' -]; - -var paths = [ - '../foo/bar?baz=boom', - 'foo/bar', - 'http://nodejs.org', - './foo/bar?baz' -]; - -benchmark('parse()', url.parse); -benchmark('format()', url.format); -paths.forEach(function(p) { - benchmark('resolve("' + p + '")', function(u) { - url.resolve(u, p) - }); -}); - -function benchmark(name, fun) { - var timestamp = process.hrtime(); - for (var i = 0; i < n; ++i) { - for (var j = 0, k = urls.length; j < k; ++j) fun(urls[j]); - } - timestamp = process.hrtime(timestamp); - - var seconds = timestamp[0]; - var nanos = timestamp[1]; - var time = seconds + nanos / 1e9; - var rate = n / time; - - console.log('misc/url.js %s: %s', name, rate.toPrecision(5)); -} diff --git a/benchmark/misc/module-loader.js b/benchmark/module/module-loader.js similarity index 100% rename from benchmark/misc/module-loader.js rename to benchmark/module/module-loader.js diff --git a/benchmark/misc/bench-env.js b/benchmark/process/bench-env.js similarity index 100% rename from benchmark/misc/bench-env.js rename to benchmark/process/bench-env.js diff --git a/benchmark/misc/bench-hrtime.js b/benchmark/process/bench-hrtime.js similarity index 100% rename from benchmark/misc/bench-hrtime.js rename to benchmark/process/bench-hrtime.js diff --git a/benchmark/misc/next-tick-breadth-args.js b/benchmark/process/next-tick-breadth-args.js similarity index 100% rename from benchmark/misc/next-tick-breadth-args.js rename to benchmark/process/next-tick-breadth-args.js diff --git a/benchmark/misc/next-tick-breadth.js b/benchmark/process/next-tick-breadth.js similarity index 100% rename from benchmark/misc/next-tick-breadth.js rename to benchmark/process/next-tick-breadth.js diff --git a/benchmark/misc/next-tick-depth-args.js b/benchmark/process/next-tick-depth-args.js similarity index 100% rename from benchmark/misc/next-tick-depth-args.js rename to benchmark/process/next-tick-depth-args.js diff --git a/benchmark/misc/next-tick-depth.js b/benchmark/process/next-tick-depth.js similarity index 100% rename from benchmark/misc/next-tick-depth.js rename to benchmark/process/next-tick-depth.js diff --git a/benchmark/misc/string-decoder.js b/benchmark/string_decoder/string-decoder.js similarity index 100% rename from benchmark/misc/string-decoder.js rename to benchmark/string_decoder/string-decoder.js diff --git a/benchmark/misc/timers.js b/benchmark/timers/timers.js similarity index 100% rename from benchmark/misc/timers.js rename to benchmark/timers/timers.js diff --git a/benchmark/url/url-resolve.js b/benchmark/url/url-resolve.js index 18f67e82e30787..8372132e4d269e 100644 --- a/benchmark/url/url-resolve.js +++ b/benchmark/url/url-resolve.js @@ -3,30 +3,43 @@ var common = require('../common.js'); var url = require('url'); var v8 = require('v8'); +var hrefs = [ + 'http://example.com/', + 'http://nodejs.org/docs/latest/api/url.html#url_url_format_urlobj', + 'http://blog.nodejs.org/', + 'https://encrypted.google.com/search?q=url&q=site:npmjs.org&hl=en', + 'javascript:alert("node is awesome");', + 'some.ran/dom/url.thing?oh=yes#whoo' +]; + + +var paths = [ + '../../../../../etc/passwd', + '../foo/bar?baz=boom', + 'foo/bar', + 'http://nodejs.org', + './foo/bar?baz' +]; + var bench = common.createBenchmark(main, { - type: ['one'], - n: [1e5], + href: Object.keys(hrefs), + path: Object.keys(paths), + n: [1e5] }); function main(conf) { - var type = conf.type; var n = conf.n | 0; - - var inputs = { - one: ['http://example.com/', '../../../../../etc/passwd'], - }; - var input = inputs[type] || []; + var href = hrefs[conf.href]; + var path = paths[conf.path]; // Force-optimize url.resolve() so that the benchmark doesn't get // disrupted by the optimizer kicking in halfway through. - for (var name in inputs) - url.resolve(inputs[name][0], inputs[name][1]); - + 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(input[0], input[1]); + url.resolve(href, path); bench.end(n); }