ED_LRR/benchmark.py

39 lines
1.1 KiB
Python

from datetime import datetime
import time
import json
import statistics as stats
from pprint import pprint
import os
import _ed_lrr
NUM_LOOPS=5
results={}
def time_run(w,s,file="benchmark.json", loops=None):
global results,NUM_LOOPS
if loops is None:
loops=NUM_LOOPS
for _ in range(loops):
t_start = time.time()
ret = _ed_lrr.route(s,48,None,'bfs',True,False,False,False,0.0,None,r"D:\devel\rust\ED_LRR\stars.csv",w,lambda *args,**kwargs: None)
t_end = time.time()
results.setdefault(w,[]).append({'ret':len(ret),'time':t_end - t_start})
with open(file, "w") as of:
json.dump(results, of,indent=2)
t_start = datetime.today()
for w in [1,2,4,7,8,0]:
time_run(w,['Ix','72'])
print("Benchmark took:", datetime.today() - t_start)
for workers,results in results.items():
t_total=sum([res['time'] for res in results])/len(results)
avg_len=sum([res['ret'] for res in results])/len(results)
times.append([int(workers),timedelta(seconds=t_total),avg_len])
for k,v,l in sorted(times,key=lambda rec:rec[1]):
print(k,v,l)