benchmark: add url benchmarks
authorBen Noordhuis <info@bnoordhuis.nl>
Sat, 6 Dec 2014 19:38:58 +0000 (20:38 +0100)
committerBen Noordhuis <info@bnoordhuis.nl>
Tue, 9 Dec 2014 21:16:41 +0000 (22:16 +0100)
Based on the ad-hoc benchmark from joyent/node#8638 plus an additional
benchmark for user:pass auth URLs.

PR-URL: https://github.com/iojs/io.js/pull/102
Reviewed-by: Chris Dickinson <christopher.s.dickinson@gmail.com>
benchmark/url/url.js [new file with mode: 0644]

diff --git a/benchmark/url/url.js b/benchmark/url/url.js
new file mode 100644 (file)
index 0000000..7939a29
--- /dev/null
@@ -0,0 +1,27 @@
+var common = require('../common.js');
+var url = require('url');
+
+var bench = common.createBenchmark(main, {
+  type: 'one two three four five six'.split(' '),
+  n: [25e4]
+});
+
+function main(conf) {
+  var type = conf.type;
+  var n = conf.n | 0;
+
+  var inputs = {
+    one: 'http://nodejs.org/docs/latest/api/url.html#url_url_format_urlobj',
+    two: 'http://blog.nodejs.org/',
+    three: 'https://encrypted.google.com/search?q=url&q=site:npmjs.org&hl=en',
+    four: 'javascript:alert("node is awesome");',
+    five: 'some.ran/dom/url.thing?oh=yes#whoo',
+    six: 'https://user:pass@example.com/',
+  };
+  var input = inputs[type] || '';
+
+  bench.start();
+  for (var i = 0; i < n; i += 1)
+    url.parse(input);
+  bench.end(n);
+}