import os
import subprocess
import sys
last_day = None
total_day_time = 0
days = []
new_env = os.environ.copy()
new_env['RUSTFLAGS'] = '-C target-cpu=native'
p = subprocess.Popen(['cargo', 'bench', '--bench', 'benchmark', '--', '--output-format=bencher', '2022'],
text=True,
stdout=subprocess.PIPE,
env=new_env)
for line in p.stdout:
line = line.strip()
if not line: continue
parts = [x for x in line.split(" ") if x]
day = int(parts[1][5:7])
time = int(parts[4]) / 1_000_000
print(f"Day {day}..", file=sys.stderr)
if day == last_day:
total_day_time += time
else:
if last_day:
days.append((last_day, total_day_time))
total_day_time = time
last_day = day
days.append((last_day, total_day_time))
total_time = sum(t for (d,t) in days)
for (d,t) in days:
percentage = (t / total_time) * 100
print(f"Day {d:>2}: {t:>5.2f} ms {percentage:>5.2f} %")
print("")
print(f"Total: {total_time:0.2f} ms")