
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
Simple benchmarking tool that spits its results out in csv format.
$ npm install -g bench-csv
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"
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.
--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.
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
ISC © Allain Lalonde
FAQs
benchmarking tool that spits its results out in csv format
The npm package bench-csv receives a total of 26 weekly downloads. As such, bench-csv popularity was classified as not popular.
We found that bench-csv demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
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.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.