Socket
Socket
Sign inDemoInstall

@digigov/benchmark

Package Overview
Dependencies
0
Maintainers
4
Versions
27
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @digigov/benchmark

@digigov benchmark


Version published
Weekly downloads
97
increased by169.44%
Maintainers
4
Created
Weekly downloads
 

Readme

Source

@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

  1. Initialization
import BenchmarkProfiler from '@digigov/benchmark';

const profiler = new BenchmarkProfiler({
  iterations: 1000, // optional
  concurrency: 1, // optional
});
  1. 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
  },
});
  1. 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
  },
];

FAQs

Last updated on 16 Feb 2024

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc