From a99e0697be9179c3d4d1fb4600a7754671a73ed2 Mon Sep 17 00:00:00 2001 From: Feross Aboukhadijeh Date: Mon, 29 Feb 2016 07:58:35 -0800 Subject: [PATCH] add benchmark.js benchmark (for #20) ensures statistical significance --- bench/basic.js | 14 ++++++++++++++ bench/bench.js | 30 +++++++++++++++++++----------- package.json | 1 + 3 files changed, 34 insertions(+), 11 deletions(-) create mode 100644 bench/basic.js diff --git a/bench/basic.js b/bench/basic.js new file mode 100644 index 0000000..8289358 --- /dev/null +++ b/bench/basic.js @@ -0,0 +1,14 @@ +var random = require('crypto').pseudoRandomBytes + +var b64 = require('../') +var data = random(1e6).toString('base64') +var start = Date.now() +var raw = b64.toByteArray(data) +var middle = Date.now() +data = b64.fromByteArray(raw) +var end = Date.now() + +console.log('decode ms, decode ops/ms, encode ms, encode ops/ms') +console.log( + middle - start, data.length / (middle - start), + end - middle, data.length / (end - middle)) diff --git a/bench/bench.js b/bench/bench.js index 8afba64..44f3af4 100644 --- a/bench/bench.js +++ b/bench/bench.js @@ -1,14 +1,22 @@ -var random = require('crypto').pseudoRandomBytes +var base64 = require('../') +var benchmark = require('benchmark') -var b64 = require('../') +var suite = new benchmark.Suite() +var random = require('crypto').pseudoRandomBytes var data = random(1e6).toString('base64') -var start = Date.now() -var raw = b64.toByteArray(data) -var middle = Date.now() -data = b64.fromByteArray(raw) -var end = Date.now() +var raw = base64.toByteArray(data) -console.log('decode ms, decode ops/ms, encode ms, encode ops/ms') -console.log( - middle - start, data.length / (middle - start), - end - middle, data.length / (end - middle)) +suite + .add('base64.toByteArray() (decode)', function () { + var raw2 = base64.toByteArray(data) // eslint-disable-line no-unused-vars + }) + .add('base64.fromByteArray() (encode)', function () { + var data2 = base64.fromByteArray(raw) // eslint-disable-line no-unused-vars + }) + .on('error', function (event) { + console.error(event.target.error.stack) + }) + .on('cycle', function (event) { + console.log(String(event.target)) + }) + .run({ async: true }) diff --git a/package.json b/package.json index 336e16f..ac91b03 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,7 @@ "license": "MIT", "dependencies": {}, "devDependencies": { + "benchmark": "^2.1.0", "standard": "^6.0.5", "tape": "4.x" }