Skip to content

Instantly share code, notes, and snippets.

@marcbachmann
Last active August 16, 2016 09:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save marcbachmann/9126006649eac746c4f3c11260a0b32c to your computer and use it in GitHub Desktop.
Save marcbachmann/9126006649eac746c4f3c11260a0b32c to your computer and use it in GitHub Desktop.
Pino.prototype.asJson benchmarks
'use strict'
var bench = require('fastbench')
var fs = require('fs')
var dest = fs.createWriteStream('/dev/null')
var plog = require('../pino')(dest)
var plogMaster = require('../pino-master')(dest)
var twoKeyObject = {foo: 'bar', bar: 'foo'}
var threeKeyObject = {foo: 'bar', bar: 'foo', qux: 'quz'}
var nestedObject = Object.assign({}, threeKeyObject, {first: threeKeyObject, second: twoKeyObject})
var max = 10
var run = bench([
function oneKeyPerf (cb) {
for (var i = 0; i < max; i++) {
plog.asJson({foo: 'bar'}, undefined, 30)
}
setImmediate(cb)
},
function oneKeyMaster (cb) {
for (var i = 0; i < max; i++) {
plogMaster.asJson({foo: 'bar'}, undefined, 30)
}
setImmediate(cb)
},
function twoKeysPerf (cb) {
for (var i = 0; i < max; i++) {
plog.asJson(twoKeyObject, undefined, 30)
}
setImmediate(cb)
},
function twoKeysMaster (cb) {
for (var i = 0; i < max; i++) {
plogMaster.asJson(twoKeyObject, undefined, 30)
}
setImmediate(cb)
},
function threeKeysPerf (cb) {
for (var i = 0; i < max; i++) {
plog.asJson(threeKeyObject, undefined, 30)
}
setImmediate(cb)
},
function threeKeysMaster (cb) {
for (var i = 0; i < max; i++) {
plogMaster.asJson(threeKeyObject, undefined, 30)
}
setImmediate(cb)
},
function nestedPerf (cb) {
for (var i = 0; i < max; i++) {
plog.asJson(nestedObject, undefined, 30)
}
setImmediate(cb)
},
function nestedMaster (cb) {
for (var i = 0; i < max; i++) {
plogMaster.asJson(nestedObject, undefined, 30)
}
setImmediate(cb)
}
], 100000)
run(run)

Using node v4.4.7

$ node pino-as-json-benchmark.js
oneKeyPerf*100000: 774ms
oneKeyMaster*100000: 655ms
twoKeysPerf*100000: 1185ms
twoKeysMaster*100000: 1228ms
threeKeysPerf*100000: 1586ms
threeKeysMaster*100000: 1622ms
nestedPerf*100000: 3542ms
nestedMaster*100000: 3612ms
oneKeyPerf*100000: 774ms
oneKeyMaster*100000: 704ms
twoKeysPerf*100000: 1230ms
twoKeysMaster*100000: 1234ms
threeKeysPerf*100000: 1618ms
threeKeysMaster*100000: 1572ms
nestedPerf*100000: 3504ms
nestedMaster*100000: 3578ms


$ node benchmarks/as-json.js
oneKeyPerf*100000: 722ms
oneKeyMaster*100000: 666ms
twoKeysPerf*100000: 1306ms
twoKeysMaster*100000: 1245ms
threeKeysPerf*100000: 1616ms
threeKeysMaster*100000: 1646ms
nestedPerf*100000: 3713ms
nestedMaster*100000: 3612ms
oneKeyPerf*100000: 861ms
oneKeyMaster*100000: 793ms
twoKeysPerf*100000: 1311ms
twoKeysMaster*100000: 1357ms
threeKeysPerf*100000: 1766ms
threeKeysMaster*100000: 1666ms
nestedPerf*100000: 3711ms
nestedMaster*100000: 3931ms

$ node benchmarks/as-json.js
oneKeyPerf*100000: 712ms
oneKeyMaster*100000: 690ms
twoKeysPerf*100000: 1288ms
twoKeysMaster*100000: 1218ms
threeKeysPerf*100000: 1728ms
threeKeysMaster*100000: 1712ms
nestedPerf*100000: 3820ms
nestedMaster*100000: 3733ms
oneKeyPerf*100000: 862ms
oneKeyMaster*100000: 769ms
twoKeysPerf*100000: 1314ms
twoKeysMaster*100000: 1345ms
threeKeysPerf*100000: 1637ms
threeKeysMaster*100000: 1645ms
nestedPerf*100000: 3868ms
nestedMaster*100000: 4006ms

Using node v6.3.1

$ node benchmarks/as-json.js
oneKeyPerf*100000: 765.212ms
oneKeyMaster*100000: 560.849ms
twoKeysPerf*100000: 1188.046ms
twoKeysMaster*100000: 1132.793ms
threeKeysPerf*100000: 1642.632ms
threeKeysMaster*100000: 1528.590ms
nestedPerf*100000: 3588.745ms
nestedMaster*100000: 3637.866ms
oneKeyPerf*100000: 858.379ms
oneKeyMaster*100000: 683.859ms
twoKeysPerf*100000: 1187.338ms
twoKeysMaster*100000: 1116.779ms
threeKeysPerf*100000: 1717.712ms
threeKeysMaster*100000: 1653.829ms
nestedPerf*100000: 3687.263ms
nestedMaster*100000: 3491.140ms

$ node benchmarks/as-json.js
oneKeyPerf*100000: 782.040ms
oneKeyMaster*100000: 545.994ms
twoKeysPerf*100000: 1197.590ms
twoKeysMaster*100000: 1109.557ms
threeKeysPerf*100000: 1666.516ms
threeKeysMaster*100000: 1558.110ms
nestedPerf*100000: 3493.843ms
nestedMaster*100000: 4267.283ms
oneKeyPerf*100000: 892.009ms
oneKeyMaster*100000: 814.042ms
twoKeysPerf*100000: 1254.640ms
twoKeysMaster*100000: 1311.295ms
threeKeysPerf*100000: 1768.781ms
threeKeysMaster*100000: 1917.279ms
nestedPerf*100000: 4138.240ms
nestedMaster*100000: 4245.962ms

$ node benchmarks/as-json.js
oneKeyPerf*100000: 763.454ms
oneKeyMaster*100000: 560.616ms
twoKeysPerf*100000: 1216.487ms
twoKeysMaster*100000: 1129.528ms
threeKeysPerf*100000: 1652.947ms
threeKeysMaster*100000: 1527.674ms
nestedPerf*100000: 3686.108ms
nestedMaster*100000: 3419.049ms
oneKeyPerf*100000: 887.967ms
oneKeyMaster*100000: 726.574ms
twoKeysPerf*100000: 1308.869ms
twoKeysMaster*100000: 1207.180ms
threeKeysPerf*100000: 1778.233ms
threeKeysMaster*100000: 1685.128ms
nestedPerf*100000: 3853.279ms
nestedMaster*100000: 3747.492ms
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment