39 lines
1.1 KiB
Python
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) |