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:
authorBrian White <mscdex@mscdex.net>2017-01-18 12:19:03 +0300
committerItalo A. Casas <me@italoacasas.com>2017-01-30 20:08:58 +0300
commit53421b174cdfa36d889a16cf0fcd246e0d6edb32 (patch)
tree5e730175565f7100ac7c8c7d28d52fe12a03eac6 /benchmark
parentd13aba84996f576fab9c597209fb228518ed2e46 (diff)
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')
-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 d78ef99f84f..fe14d95a53f 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