Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
benchmark: merge url.js with url-resolve.js
url.js was broken since it didn't use the common.js runner. This fixes
that issue by merging it with url-resolve.js, which also benchmarks
url.resolve.
  • Loading branch information
AndreasMadsen committed Feb 26, 2016
commit 3f751dde2d9416ea73bd822ac9181be4154e7fdb
37 changes: 25 additions & 12 deletions benchmark/url/url-resolve.js
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
41 changes: 0 additions & 41 deletions benchmark/url/url.js

This file was deleted.