Skip to content

Commit

Permalink
benchmark: add url/url-searchparams-sort.js
Browse files Browse the repository at this point in the history
Backport-of: #11098
  • Loading branch information
TimothyGu authored and italoacasas committed Feb 22, 2017
1 parent c25c16c commit 7e37628
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 0 deletions.
48 changes: 48 additions & 0 deletions benchmark/url/url-searchparams-sort.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
'use strict';
const common = require('../common.js');
const URLSearchParams = require('url').URLSearchParams;

const inputs = {
empty: '',
sorted: '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',
almostsorted: 'a&b&c&d&e&f&g&i&h&j&k&l&m&n&o&p&q&r&s&t&u&w&v&x&y&z',
reversed: 'z&y&x&w&v&u&t&s&r&q&p&o&n&m&l&k&j&i&h&g&f&e&d&c&b&a',
random: 'm&t&d&c&z&v&a&n&p&y&u&o&h&l&f&j&e&q&b&i&s&x&k&w&r&g',
// 8 parameters
short: 'm&t&d&c&z&v&a&n',
// 88 parameters
long: 'g&r&t&h&s&r&d&w&b&n&h&k&x&m&k&h&o&e&x&c&c&g&e&b&p&p&s&n&j&b&y&z&' +
'u&l&o&r&w&a&u&l&m&f&j&q&p&f&e&y&e&n&e&l&m&w&u&w&t&n&t&q&v&y&c&o&' +
'k&f&j&i&l&m&g&j&d&i&z&q&p&x&q&q&d&n&y&w&g&i&v&r'
};

function getParams(str) {
const out = [];
for (const key of str.split('&')) {
out.push(key, '');
}
return out;
}

const bench = common.createBenchmark(main, {
type: Object.keys(inputs),
n: [1e6]
}, {
flags: ['--expose-internals']
});

function main(conf) {
const searchParams = require('internal/url').searchParamsSymbol;
const input = inputs[conf.type];
const n = conf.n | 0;
const params = new URLSearchParams();
const array = getParams(input);

var i;
bench.start();
for (i = 0; i < n; i++) {
params[searchParams] = array.slice();
params.sort();
}
bench.end(n);
}
1 change: 1 addition & 0 deletions lib/internal/url.js
Original file line number Diff line number Diff line change
Expand Up @@ -1215,3 +1215,4 @@ exports.domainToUnicode = domainToUnicode;
exports.encodeAuth = encodeAuth;
exports.urlToOptions = urlToOptions;
exports.formatSymbol = kFormat;
exports.searchParamsSymbol = searchParams;

1 comment on commit 7e37628

@MylesBorins
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This did not land with proper meta data and is breaking tooling

Please sign in to comment.