blob: 560b8a3cf2405a5cd3efc5ff597439a9456b8524 [file] [log] [blame]
# This script takes csvs produced by parse_logs.py and combines them
# into a single CSV file
import ast
import csv
import sys
from collections import defaultdict
assert len(sys.argv) == 3
RESULTS = defaultdict(dict)
for side, f in zip(["static", "dynamic"], sys.argv[1:]):
with open(f) as f:
reader = csv.DictReader(f)
for row in reader:
RESULTS[(row["bench"], row["name"])][side] = row
fields = ["frame_time", "graph_breaks"]
out = csv.DictWriter(
sys.stdout,
["bench", "name"] + [f"delta_{n}" for n in fields] + ["static_url", "dynamic_url"],
dialect="excel",
)
out.writeheader()
for (bench, name), sides in RESULTS.items():
if "static" not in sides:
continue
if "dynamic" not in sides:
continue
if not name:
out.writerow(
{
"static_url": sides["static"]["explain"],
"dynamic_url": sides["dynamic"]["explain"],
}
)
continue
row = {"bench": bench, "name": name}
for f in fields:
try:
static = ast.literal_eval(sides["static"][f])
dynamic = ast.literal_eval(sides["dynamic"][f])
except SyntaxError:
continue
row[f"delta_{f}"] = dynamic - static
out.writerow(row)