benchy

Version, currently master branch1 version
  • master branchlatestSep 30, 2022

github.com/manastech/benchy

A tool to perform benchmarks

14 stars
0 dependents
License: MIT

Installation

# Add this to your shard.yml
dependencies:
  benchy:
    github: manastech/benchy
    branch: master

master is a branch, not a release, so this tracks it rather than pinning a version.

Then run:

shards install

shard.yml

Crystal
0.30.1
License
MIT
Author
Brian J. Cardiff <bcardiff@gmail.com>
Target
  • benchy from src/cli.cr

Dependencies

This version declares no dependencies.

README

# Benchy

A tool to perform benchmarks.

Allows declaration of program to run and measurements to do (cpu time, user time, max resident set size, etc.) in a manifest `.yml` file.

The measurements will already compute average and standard deviation.

It supports client/server programs to run HTTP servers against tools like `ab`.

It supports runnings the program against multiple configurations.

In OSX, To run the http benchmarks you need to [mind the ephemeral port-limit](http://danielmendel.github.io/blog/2013/04/07/benchmarkers-beware-the-ephemeral-port-limit/).

## Installation

```sh
$ git clone https://github.com/manastech/benchy.git
$ cd benchy
$ shards build
```

Use `./bin/benchy` or copy it your somewhere in your PATH.

## Usage

Read the full [DOCS](./DOCS.md) or run one of the samples included in `./sample`

Ensure that `time` and `ab` are installed. `$ apt-get install time apache2-utils`

```sh
$ shards build
$ ./bin/benchy run -v --csv=output.csv --ndjson=output.ndjson ./sample/http-ab.yml
```

The ndjson file can be used with [@bcardiff/benchy-viewer](https://observablehq.com/@bcardiff/benchy-viewer).

If you prefer to use `wrk`, check `./sample/http-wrk.yml`.

## Contributing

1. Fork it (<https://github.com/manastech/benchy/fork>)
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create a new Pull Request

## Contributors

- [Brian J. Cardiff](https://github.com/bcardiff) - creator and maintainer