Python utility to convert Celero benchmark results to pretty Bokeh graphs.
Bokeh 1.2.0 or later.
See requirements.txt for details.
pip install -r requirements.txt
Once you have built Celero runner for your benchmark, generate CSV report:
benchmark_cpp_sort -t benchmark_cpp_sort.csv
Then, generate HTML files with graphs in the current directory:
python celerograph.py benchmark_cpp_sort.csv
See the example for sample HTML output.
- Reads Celero report in CSV format into dictionary in memory.
- Processes single CSV file or all CSV files in directory.
- Can also process single concatenated CSV file with multiple benchmark groups.
- Plots six graphs for the Celero measurements: Baseline, us/Iteration, Iterations/sec, Min (us), Max (us), Mean (us).
- Plots the graphs in 2x3 grid layout.
- Plots bar charts only.
- Adds single Bokeh toolbar at the top of HTML page.
- Generates single HTML report per benchmark group (outputs HTML files in the current directory).
- Generates index.html file with linking all generated individual reports.
- Is dead simple to modify, customise and extend.
- Add tests. It is Python. It is shame to not to have any!
- Optimise format of the in-memory dictionary to avoid re-aggregating of the measurements.
- Output the dictionary to JSON - currently,
class Column(Enum)
is not serializable with JSON encoder.
This is free and unencumbered software released into the public domain.
- John Farrier for the Celero benchmarking library.
- Bryan Van de Ven for Bokeh discovery.
- lexicalunit for linking me with Bryan.