UNPKG

pino

Version:

super fast, all natural json logger

183 lines (178 loc) 5.04 kB
'use strict' const bench = require('fastbench') const pino = require('../../') const fs = require('node:fs') const dest = fs.createWriteStream('/dev/null') const plog = pino(dest) delete require.cache[require.resolve('../../')] const plogDest = require('../../')(pino.destination('/dev/null')) delete require.cache[require.resolve('../../')] const plogAsync = require('../../')(pino.destination({ dest: '/dev/null', sync: false })) const plogChild = plog.child({ a: 'property' }) const plogDestChild = plogDest.child({ a: 'property' }) const plogAsyncChild = plogAsync.child({ a: 'property' }) const plogChildChild = plog.child({ a: 'property' }).child({ sub: 'child' }) const plogDestChildChild = plogDest.child({ a: 'property' }).child({ sub: 'child' }) const plogAsyncChildChild = plogAsync.child({ a: 'property' }).child({ sub: 'child' }) const max = 10 const run = bench([ function benchPino (cb) { for (var i = 0; i < max; i++) { plog.info('hello world') } setImmediate(cb) }, function benchPinoDest (cb) { for (var i = 0; i < max; i++) { plogDest.info('hello world') } setImmediate(cb) }, function benchPinoExtreme (cb) { for (var i = 0; i < max; i++) { plogAsync.info('hello world') } setImmediate(cb) }, function benchPinoObj (cb) { for (var i = 0; i < max; i++) { plog.info({ hello: 'world' }) } setImmediate(cb) }, function benchPinoDestObj (cb) { for (var i = 0; i < max; i++) { plogDest.info({ hello: 'world' }) } setImmediate(cb) }, function benchPinoAsyncObj (cb) { for (var i = 0; i < max; i++) { plogAsync.info({ hello: 'world' }) } setImmediate(cb) }, function benchPinoChild (cb) { for (var i = 0; i < max; i++) { plogChild.info({ hello: 'world' }) } setImmediate(cb) }, function benchPinoDestChild (cb) { for (var i = 0; i < max; i++) { plogDestChild.info({ hello: 'world' }) } setImmediate(cb) }, function benchPinoAsyncChild (cb) { for (var i = 0; i < max; i++) { plogAsyncChild.info({ hello: 'world' }) } setImmediate(cb) }, function benchPinoChildChild (cb) { for (var i = 0; i < max; i++) { plogChildChild.info({ hello: 'world' }) } setImmediate(cb) }, function benchPinoDestChildChild (cb) { for (var i = 0; i < max; i++) { plogDestChildChild.info({ hello: 'world' }) } setImmediate(cb) }, function benchPinoAsyncChildChild (cb) { for (var i = 0; i < max; i++) { plogAsyncChildChild.info({ hello: 'world' }) } setImmediate(cb) }, function benchPinoChildCreation (cb) { const child = plog.child({ a: 'property' }) for (var i = 0; i < max; i++) { child.info({ hello: 'world' }) } setImmediate(cb) }, function benchPinoDestChildCreation (cb) { const child = plogDest.child({ a: 'property' }) for (var i = 0; i < max; i++) { child.info({ hello: 'world' }) } setImmediate(cb) }, function benchPinoMulti (cb) { for (var i = 0; i < max; i++) { plog.info('hello', 'world') } setImmediate(cb) }, function benchPinoDestMulti (cb) { for (var i = 0; i < max; i++) { plogDest.info('hello', 'world') } setImmediate(cb) }, function benchPinoAsyncMulti (cb) { for (var i = 0; i < max; i++) { plogAsync.info('hello', 'world') } setImmediate(cb) }, function benchPinoInterpolate (cb) { for (var i = 0; i < max; i++) { plog.info('hello %s', 'world') } setImmediate(cb) }, function benchPinoDestInterpolate (cb) { for (var i = 0; i < max; i++) { plogDest.info('hello %s', 'world') } setImmediate(cb) }, function benchPinoDestInterpolate (cb) { for (var i = 0; i < max; i++) { plogDest.info('hello %s', 'world') } setImmediate(cb) }, function benchPinoInterpolateAll (cb) { for (var i = 0; i < max; i++) { plog.info('hello %s %j %d', 'world', { obj: true }, 4) } setImmediate(cb) }, function benchPinoDestInterpolateAll (cb) { for (var i = 0; i < max; i++) { plogDest.info('hello %s %j %d', 'world', { obj: true }, 4) } setImmediate(cb) }, function benchPinoAsyncInterpolateAll (cb) { for (var i = 0; i < max; i++) { plogAsync.info('hello %s %j %d', 'world', { obj: true }, 4) } setImmediate(cb) }, function benchPinoInterpolateExtra (cb) { for (var i = 0; i < max; i++) { plog.info('hello %s %j %d', 'world', { obj: true }, 4, { another: 'obj' }) } setImmediate(cb) }, function benchPinoDestInterpolateExtra (cb) { for (var i = 0; i < max; i++) { plogDest.info('hello %s %j %d', 'world', { obj: true }, 4, { another: 'obj' }) } setImmediate(cb) }, function benchPinoAsyncInterpolateExtra (cb) { for (var i = 0; i < max; i++) { plogAsync.info('hello %s %j %d', 'world', { obj: true }, 4, { another: 'obj' }) } setImmediate(cb) } ], 10000) run(run)