Skip to content

Python utility to generate pretty Bokeh graphs for Celero benchmark results

License

Notifications You must be signed in to change notification settings

mloskot/pycelerograph

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pycelerograph 1.0

Python utility to convert Celero benchmark results to pretty Bokeh graphs.

Prerequisites

Bokeh 1.2.0 or later.

See requirements.txt for details.

Quickstart

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.

Features

  • 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.

Features Plan

  • 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.

License

This is free and unencumbered software released into the public domain.

http://unlicense.org

Credits