Git Product home page Git Product logo

benchi's Introduction

benchi is a benchmarking tool. It can benchmark some tools and inspect the results to generate neat, paper-ready comparative graphs and other various metrics.

Build Status

Features (short term)

Running:

  • dispatch benchmarks in parallel
  • for each benchmark dispatched, dispatch tools in parallel
  • log stdout of the tools, and stderr if non-empty
  • validate tool runs individually and against each other with user-defined validators

Analyzing data:

  • cumulative plot of some or all of the tools
  • comparative plot of two of the tools
  • comparative plot distinguishing between validation status
  • produce super cool breakdown of the data in markdown
  • customizable markdown table generation

Features (maybe)

Running:

  • retrieve and log user-defined data from runs (memory usage, something from the output, etc.)

Analyzing data:

  • customizable LaTeX tabular generation
  • interactive data exploration

Build

Clone this repository, make sure you have a recent version of rust installed and build with

cargo build --release

Your binary will be in target/release/benchi.

Usage

The most up-to-date documentation is benchi's command-line help.

benchi help

To run benchmarks, you will need a simple configuration file documenting your tools and how to run them. Read about it with

benchi help conf

and generate a nice example with

benchi conf <file_name>
# Typically:
benchi conf example/test.conf

After creating the example configuration file, benchi will let you know about a few things you can do with it: running the "tools" it defines and generate plots of the results.

Running benchmarks is done through the run subcommand. Read more about it with

benchi help run

Gallery

Here are the two kinds of graphs benchi can generate. The gnuplot file can be tweaked directly, there is currently no easy way to do it from benchi.

# To read more about plots:
benchi help plot

Cumulative plot

# Learn about cumulative plot options:
benchi plot help cumul

In the keys, the number between parentheses is the number of benchmark passed.

Cumulative plot

Comparative plot

# Comparative plot:
benchi plot help compare

Comparative between two runs. The timeout used during the runs was 100 seconds, notice that the timeout line is actually slightly above the real timeout value to distinguish timeouts from almost-timeouts.

Comparative plot

benchi's People

Contributors

adrienchampion avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.