summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--benchmark/url/url-resolve.js37
-rw-r--r--benchmark/url/url.js41
2 files changed, 25 insertions, 53 deletions
diff --git a/benchmark/url/url-resolve.js b/benchmark/url/url-resolve.js
index 18f67e82e3..8372132e4d 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);
}
diff --git a/benchmark/url/url.js b/benchmark/url/url.js
deleted file mode 100644
index 78fe7b6c56..0000000000
--- a/benchmark/url/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));
-}