Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mscdex/benchd
Benchmark JavaScript code across different node.js/io.js versions from the browser
https://github.com/mscdex/benchd
Last synced: 3 months ago
JSON representation
Benchmark JavaScript code across different node.js/io.js versions from the browser
- Host: GitHub
- URL: https://github.com/mscdex/benchd
- Owner: mscdex
- License: mit
- Created: 2015-07-15T18:08:54.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2015-11-20T20:15:24.000Z (about 9 years ago)
- Last Synced: 2024-10-04T09:13:46.268Z (3 months ago)
- Language: JavaScript
- Homepage:
- Size: 371 KB
- Stars: 3
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Description
===========benchd is a tool for benchmarking JavaScript code across different node.js/io.js versions from the browser.
Requirements
============* Backend: [node.js](http://nodejs.org/) -- v0.10.0 or newer
* Frontend: Any modern browser with WebSocket support
Install
=======npm install -g benchd
Config
======Configuration is achieved by a JSON formatted config file. If the `BENCHD_CONF` environment variable is set and points to a valid file, that will be used. Otherwise the server will look in the current working directory for `benchd.conf`. If that also fails, then defaults will be used. Any command-line arguments of the same names will override any other config source.
Available config options:
* **address** - _string_ - This is the address the server listens on. **Default: 0.0.0.0**
* **jobAbandonTimeout** - _integer_ - This is the amount of time in milliseconds to allow a job's owner to be disconnected before removing (and stopping, if currently executing) the job. **Default: 30 * 1000**
* **maxConcurrency** - _integer_ - This is the maximum number of target processes that are allowed to run at any given time. Set to `-1` as an alias for the number of available CPUs. **Default: 1**
* **maxJobSize** - _integer_ - This is the maximum size (in bytes) for a job (the JSON stringified version, including all benchmarks). **Default: 512 * 1024**
* **maxQueued** - _integer_ - This is the maximum number of queued jobs. **Default: 1000**
* **port** - _integer_ - This is the port the server listens on. **Default: 80**
* **targetsPath** - _string_ - This is the directory containing the target executables to make available for benchmarking against. **Default: (current working directory)**
* **timeout** - _integer_ - This is the target process timeout in milliseconds. **Default: 5 * 60 * 1000**
* **vanilla** - _boolean_ - Restrict benchmark code to a "pure"/vanilla JavaScript environment (e.g. no `require()`, `process`, etc.). **If you disable this and are making the server public, _PLEASE_ start the server in an appropriately protected environment.** **Default: true**
Todo
====* Add support for async ("deferred") option for benchmarks
* Better WebSocket error handling
* Add per-benchmark timeout configuration option
* Ability to easily share benchmark results (can load from/save to gist right now, but no easy way to discover benchmarks)
* Add support for remote targets (e.g. via ssh) for multi-platform benchmarking
* Tests