Skip to content

Benchmark your node.js projects with nanosecond resolution.

License

Notifications You must be signed in to change notification settings

paulmillr/micro-bmark

Folders and files

NameName
Last commit message
Last commit date

Latest commit

c2671a0 · Jan 18, 2025

History

30 Commits
Jan 18, 2025
Jan 18, 2025
Jan 18, 2025
Aug 13, 2022
Jan 18, 2025
Jan 18, 2025
Jan 18, 2025
Jan 18, 2025
Jan 18, 2025
Jan 18, 2025
Jan 18, 2025
Jan 18, 2025
Jan 18, 2025
Jan 18, 2025

Repository files navigation

micro-bmark

Benchmark your JS projects with nanosecond resolution.

  • Utilizes process.hrtime for 1ns resolution
  • Colorful formatting with nice units
  • No dependencies, only ~150 lines of code: as lightweight as possible to not interfere with benchmarked code
  • No code for estimating running time - specify samples manually
  • Shows relative margin of error, min/max runs only if it's high

Usage

npm install --save-dev micro-bmark
import bench from 'micro-bmark';
(async () => {
  await bench('printing', () => Promise.resolve(0));
  await bench('base', () => Promise.resolve(1));
  await bench('sqrt', 10000, () => Math.sqrt(2));
})();

Example output:

getPublicKey() x 6,072 ops/sec @ 164μs/op ± 8.22% (min: 143μs, max: 17ms)
sign x 4,980 ops/sec @ 200μs/op
signSync x 4,671 ops/sec @ 214μs/op
verify x 969 ops/sec @ 1ms/op
recoverPublicKey x 890 ops/sec @ 1ms/op
getSharedSecret aka ecdh x 585 ops/sec @ 1ms/op

License

MIT License

Copyright (c) 2020 Paul Miller (https://paulmillr.com), (c) 2010-2016 Mathias Bynens, John-David Dalton, (c) Robert Kieffer from JSLitmus.js