Easy visualisation of the evolution of your benchmarks.
Benchgraph
is a tool which helps you to see how your benchmarks evolve
through the lifetime of your program.
Wants to see if a new feature will slow your library down?
Wants to know why your users complains that your program starts getting slower?
That's what Benchgraph
is for.
All right, all right.
First, here's a picture of a blockchain-generated cat:
Now, here's a screenshot of benchgraph
in action on one of our internal
benchmark suite:
To use this, just follow these two simple steps:
- Export your benchmarks results to the format accepted by the
benchgraph
server - Run the server
The benchgraph server reads the benchmarks results as an array in nd-json format, where each line contains a record of the form (without the newlines obviously):
{
"bench_name": "MyBench";
"commit_rev": "Id of the commit";
"timestamp": "the date of the commit";
"time_in_nanos": "Duration of the benchmark";
}
We provide adapters for some benchmarking frameworks (only criterion at the moment, but you're welcome to add more) so that the export is one simple command line.
The server is provided as a docker image.
If your benchmark results are all in the benchmarks
directory, you can simply
run:
docker pull benchgraph/benchgraph:master
docker run \
-p 8123:8123
-v $PWD/benchmarks:/benchmarks benchgraph/benchgraph:master \
/bin/benchgraph /benchmarks