Skip to content

Commit

Permalink
add benchmark.js benchmark (for beatgammit#20)
Browse files Browse the repository at this point in the history
ensures statistical significance
  • Loading branch information
feross committed Feb 29, 2016
1 parent f486d4d commit a99e069
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 11 deletions.
14 changes: 14 additions & 0 deletions bench/basic.js
Original file line number Diff line number Diff line change
@@ -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))
30 changes: 19 additions & 11 deletions bench/bench.js
Original file line number Diff line number Diff line change
@@ -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 })
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
"license": "MIT",
"dependencies": {},
"devDependencies": {
"benchmark": "^2.1.0",
"standard": "^6.0.5",
"tape": "4.x"
}
Expand Down

0 comments on commit a99e069

Please sign in to comment.