@digigov/benchmark
v1.0.5-rc.21
Published
@digigov benchmark
Downloads
37
Keywords
Readme
@digigov/benchmark
@digigov/benchmark
is a lightweight utility to assist with the profiling of JavaScript code, offering insights into
execution time and memory usage during benchmark runs. Performance is measured by running the code for a specified
amount of iterations, and calculating the average operations per millisecond and memory usage per millisecond.
Features
- Simple and configurable benchmark setup
- Customizable iteration and concurrency settings for benchmarks
- Support for async benchmarks
- Detailed profiling report, with execution time (in milliseconds) and memory usage metrics
Installation
npm install @digigov/benchmark
Usage
- Initialization
import BenchmarkProfiler from '@digigov/benchmark';
const profiler = new BenchmarkProfiler({
iterations: 1000, // optional
concurrency: 1, // optional
});
- Adding benchmarks
profiler.add({
name: 'Name of the benchmark',
fn: async () => {
// Benchmark code
},
beforeAll: async () => {
// Optional. Runs once before all iterations
},
afterAll: async () => {
// Optional. Runs once after all iterations
},
beforeEach: async () => {
// Optional. Runs before each iteration
},
afterEach: async () => {
// Optional. Runs after each iteration
},
});
- Running benchmarks
const results = await profiler.run();
console.log(results);
Result Structure
Results from the run()
function return an array with each benchmark's result:
[
{
name: string, // Name of the benchmark
iterations: number, // Number of iterations run
timeInMs: number, // Total time taken for all iterations in milliseconds
averageOpsPerMs: number, // Average operations per millisecond
averageKbPerMs: number, // Average memory used per millisecond
maxKb: number, // Peak memory usage during the benchmark run
},
];