New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

bench-csv

Package Overview
Dependencies
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

bench-csv

benchmarking tool that spits its results out in csv format

latest
Source
npmnpm
Version
2.2.4
Version published
Weekly downloads
27
80%
Maintainers
1
Weekly downloads
 
Created
Source

#bench-csv NPM version Build Status Dependency Status

Simple benchmarking tool that spits its results out in csv format.

Install

$ npm install -g bench-csv

Usage

Simple Example

Step 1: Write your benchmark

# file: benchmark.js
// function being benchmarked
const randomDelay = ms => new Promise(resolve => setTimeout(resolve, Math.round(Math.random() * ms)))

// export it
module.exports = () => randomDelay(100)

Step 2: run bench-csv on it

bench-csv ./path/to/benchmark.js

outputs (changes every time it's run)

"pid","timestamp","memory","duration"
"8342","2017-08-30T14:24:13.416Z","66229821","38"

Better Usage Example

Benchmark slow-code.js continously, running batches of 10 iterations with 5 warmups and waiting 60 seconds between runs:

bench-csv --watch --delay=60 --warmups=5 --repeat=10 slow-code.js -o slow-code.csv

Under the hood this uses nodemon to restart when the code being benchmarked changes.

The -o param tells bench-csv to send its results to the file targetted, creating it if missing.

Command Line Options

--watch

Runs the benchmark continously, accounting for changes in the target

--delay [seconds]

When watching, how long to wait before each benchmark is performed. Defaults to 1 second

--repeat [1]

How many iterations to perform each benchmark

--header [true]

Whether to display the header row

--delim [',']

Delimiter to use between columns of the CSV output. For tabs use `--delim="\t"` works too

--warmups[=0]

Runs this many iterations before recording begins. Default to 0.

--inspect

Enables remote debugging. What use would benchmarking be without profiling.

Benchmark Lifecycles

Should you need it, bench-csv supports specifying lifecycle hooks as below:

// slow-code-with-lifecycle.js

// Runs before each batch of iterations
module.exports.beforeAll = () => { ... }

// Runs before each iteration
module.exports.before = () => { ... }

// The function being benchmarked
module.exports.run = () => { ... }

// Runs after each iteration
module.exports.after = () => { ... }

// Runs after each batch of iterations
module.exports.afterAll = () => { ... }

Then you can benchmark it as before:

bench-csv --watch --repeat=10 --delay=60 ./path/to/slow-code-with-lifecycle.js

License

ISC © Allain Lalonde

Keywords

bench-csv

FAQs

Package last updated on 02 Jun 2018

Did you know?

Socket

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