diff options
Diffstat (limited to 'benchmark/url')
-rw-r--r-- | benchmark/url/url.js | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/benchmark/url/url.js b/benchmark/url/url.js new file mode 100644 index 00000000000..78fe7b6c560 --- /dev/null +++ b/benchmark/url/url.js @@ -0,0 +1,41 @@ +'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)); +} |