Skip to content

// benchmarks

Lower is better

Average time to complete each benchmark run, taken from the docs/benchmarks.md file of Pino v10.4.0. Every group logs the same payload with each library.

BASIC

slowest / pino = 3.3×

  1. Pino (minLength)70.968 ms
  2. Pino114.801 ms
  3. Pino (Node stream)159.192 ms
  4. Bole172.690 ms
  5. Debug220.527 ms
  6. loglevel222.802 ms
  7. Winston270.249 ms
  8. Bunyan377.434 ms
pino.info('hello world')

OBJECT

slowest / pino = 3.6×

  1. Pino (minLength)76.968 ms
  2. Pino119.315 ms
  3. Pino (Node stream)164.268 ms
  4. Bole185.069 ms
  5. Winston273.120 ms
  6. Bunyan410.379 ms
  7. loglevel433.425 ms
pino.info({'hello': 'world'})

DEEP-OBJECT

slowest / pino = 5.2×

  1. Bunyan1.839 ms
  2. Pino (minLength)2.240 ms
  3. Pino2.256 ms
  4. Pino (Node stream)2.595 ms
  5. Bole3.422 ms
  6. Winston5.604 ms
  7. loglevel11.716 ms
pino.info(aBigDeeplyNestedObject)

For a fair comparison, loglevel was extended to include a timestamp and bole had fastTime mode switched on. Run them yourself with npm run bench in the pino repository.