Files
hyperfine/scripts/plot_parametrized.py
T
2020-04-01 09:35:09 +02:00

34 lines
889 B
Python
Executable File

#!/usr/bin/python
"""This program shows parametrized `hyperfine` benchmark results as an
errorbar plot."""
import argparse
import json
import matplotlib.pyplot as plt
parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument("file", help="JSON file with benchmark results", nargs="+")
parser.add_argument(
"--parameter-name",
metavar="name",
type=str,
help="Name of the parameter / x-axis label",
)
args = parser.parse_args()
for filename in args.file:
with open(filename) as f:
results = json.load(f)["results"]
parameter_values = [float(b["parameter"]) for b in results]
times_mean = [b["mean"] for b in results]
times_stddev = [b["stddev"] for b in results]
plt.errorbar(x=parameter_values, y=times_mean, yerr=times_stddev, capsize=2)
plt.xlabel(args.parameter_name)
plt.ylabel("Time [s]")
plt.ylim(0, None)
plt.show()