summaryrefslogtreecommitdiff
path: root/benchmark/querystring/querystring-parse.js
diff options
context:
space:
mode:
authorBrian White <mscdex@mscdex.net>2017-01-18 04:19:03 -0500
committerBrian White <mscdex@mscdex.net>2017-01-25 02:05:26 -0500
commit2298bc4b1fdcdbe8f5fc8f405033e879fe9bcd4e (patch)
tree53b99a377efa2a5f06fe8c9ba353094bf29b7f80 /benchmark/querystring/querystring-parse.js
parent9e0f6a5eb4754627f9abf892118bce95d10eb149 (diff)
downloadnode-new-2298bc4b1fdcdbe8f5fc8f405033e879fe9bcd4e.tar.gz
querystring: improve parse() performance
PR-URL: https://github.com/nodejs/node/pull/10874 Reviewed-By: James M Snell <jasnell@gmail.com>
Diffstat (limited to 'benchmark/querystring/querystring-parse.js')
-rw-r--r--benchmark/querystring/querystring-parse.js33
1 files changed, 12 insertions, 21 deletions
diff --git a/benchmark/querystring/querystring-parse.js b/benchmark/querystring/querystring-parse.js
index d78ef99f84..fe14d95a53 100644
--- a/benchmark/querystring/querystring-parse.js
+++ b/benchmark/querystring/querystring-parse.js
@@ -3,35 +3,26 @@ var common = require('../common.js');
var querystring = require('querystring');
var v8 = require('v8');
-var types = [
- 'noencode',
- 'multicharsep',
- 'encodemany',
- 'encodelast',
- 'multivalue',
- 'multivaluemany',
- 'manypairs'
-];
+var inputs = {
+ noencode: 'foo=bar&baz=quux&xyzzy=thud',
+ multicharsep: 'foo=bar&&&&&&&&&&baz=quux&&&&&&&&&&xyzzy=thud',
+ encodefake: 'foo=%©ar&baz=%A©uux&xyzzy=%©ud',
+ encodemany: '%66%6F%6F=bar&%62%61%7A=quux&xyzzy=%74h%75d',
+ encodelast: 'foo=bar&baz=quux&xyzzy=thu%64',
+ multivalue: 'foo=bar&foo=baz&foo=quux&quuy=quuz',
+ multivaluemany: 'foo=bar&foo=baz&foo=quux&quuy=quuz&foo=abc&foo=def&' +
+ 'foo=ghi&foo=jkl&foo=mno&foo=pqr&foo=stu&foo=vwxyz',
+ manypairs: 'a&b&c&d&e&f&g&h&i&j&k&l&m&n&o&p&q&r&s&t&u&v&w&x&y&z'
+};
var bench = common.createBenchmark(main, {
- type: types,
+ type: Object.keys(inputs),
n: [1e6],
});
function main(conf) {
var type = conf.type;
var n = conf.n | 0;
-
- var inputs = {
- noencode: 'foo=bar&baz=quux&xyzzy=thud',
- multicharsep: 'foo=bar&&&&&&&&&&baz=quux&&&&&&&&&&xyzzy=thud',
- encodemany: '%66%6F%6F=bar&%62%61%7A=quux&xyzzy=%74h%75d',
- encodelast: 'foo=bar&baz=quux&xyzzy=thu%64',
- multivalue: 'foo=bar&foo=baz&foo=quux&quuy=quuz',
- multivaluemany: 'foo=bar&foo=baz&foo=quux&quuy=quuz&foo=abc&foo=def&' +
- 'foo=ghi&foo=jkl&foo=mno&foo=pqr&foo=stu&foo=vwxyz',
- manypairs: 'a&b&c&d&e&f&g&h&i&j&k&l&m&n&o&p&q&r&s&t&u&v&w&x&y&z'
- };
var input = inputs[type];
// Force-optimize querystring.parse() so that the benchmark doesn't get