From c94345bd1c1ce992030ee74506ecfc1e3d17a16f Mon Sep 17 00:00:00 2001 From: Kyle Date: Fri, 15 Oct 2021 01:04:21 -0400 Subject: [PATCH 1/4] Added timer utility for development --- benchData/time.csv | 21 +++++++++++++++++++++ benchmarking.py | 45 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 benchData/time.csv create mode 100644 benchmarking.py diff --git a/benchData/time.csv b/benchData/time.csv new file mode 100644 index 0000000..2e58c09 --- /dev/null +++ b/benchData/time.csv @@ -0,0 +1,21 @@ +Section,Start Time,End Time,Time Elapsed +Create Tasks,0.01173190000008617,0.011608300001171301,-0.0001235999989148695 +Create Tasks,0.011499300000650692,0.012321500000325614,0.0008221999996749219 +Create Tasks,0.012110600000596605,0.011474599999928614,-0.0006360000006679911 +Create Tasks,0.0071184999997058185,0.011835499999506283,0.004716999999800464 +Create Tasks,0.011849700000311714,0.01152170000023034,-0.0003280000000813743 +Create Tasks,0.011755899999116082,0.016899099999136524,0.0051432000000204425 +Create Tasks,0.0073439999996480765,0.007071200001519173,-0.0002727999981289031 +Create Tasks,0.006634500001382548,0.00645040000017616,-0.0001841000012063887 +Create Tasks,0.006856500000139931,0.006442500000048312,-0.00041400000009161886 +Create Tasks,0.00744479999957548,0.00603179999961867,-0.00141299999995681 +Create Tasks,0.006359799999700044,0.006122100001448416,-0.00023769999825162813 +Create Tasks,0.006877599998915684,0.006041900000127498,-0.0008356999987881863 +Create Tasks,0.009612300000299001,0.006650999999692431,-0.0029613000006065704 +Create Tasks,0.0063289999998232815,0.0062319000007846626,-9.709999903861899e-05 +Create Tasks,0.006966599999941536,0.006507399999463814,-0.0004592000004777219 +Create Tasks,0.006575199999133474,0.006429600000046776,-0.00014559999908669852 +Create Tasks,0.008982899998954963,0.00653020000027027,-0.002452699998684693 +Create Tasks,0.0068334000006871065,0.0062576999989687465,-0.00057570000171836 +Create Tasks,0.006512800000564312,0.006429000000935048,-8.379999962926377e-05 +Create Tasks,0.006611800001337542,0.007598100000905106,0.0009862999995675636 diff --git a/benchmarking.py b/benchmarking.py new file mode 100644 index 0000000..156b278 --- /dev/null +++ b/benchmarking.py @@ -0,0 +1,45 @@ +import matplotlib.pyplot as plt +import timeit +import csv + +class Graph: + xvals = [] + yvals = [] + + #initialize function to start our graph + def __init__(self, xlabel, ylabel): + self.xlabel = xlabel + self.ylabel = ylabel + + #add data point for the graph + def addPoint(self, x, y): + xvals.append(x) + yvals.append(y) + + #plot graph when finished + def plot(self): + plt.plot(xvals,yvals) + plt.xlabel(self.xlabel) + plt.ylabel(self.ylabel) + plt.show() + +class Time: + #initialize function to give label + def __init__(self, label): + self.label = label + + #start timer + def startTime(self): + self.startTime = timeit.timeit() + + #stop timer and add data to csv + def endTime(self): + self.endTime = timeit.timeit() + runData = [self.label, self.startTime, self.endTime, self.endTime - self.startTime] + with open('benchData/time.csv', 'a') as f: + writer = csv.writer(f) + + writer.writerow(runData) + + + \ No newline at end of file From bdc962ee30694a50e998078b516bb4ba49a995aa Mon Sep 17 00:00:00 2001 From: Kyle Date: Fri, 15 Oct 2021 10:50:23 -0400 Subject: [PATCH 2/4] Reset CSV functionality added --- benchmarking.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/benchmarking.py b/benchmarking.py index 156b278..77942c6 100644 --- a/benchmarking.py +++ b/benchmarking.py @@ -29,17 +29,25 @@ def __init__(self, label): self.label = label #start timer - def startTime(self): + def startClock(self): self.startTime = timeit.timeit() #stop timer and add data to csv - def endTime(self): + def endClock(self): self.endTime = timeit.timeit() - runData = [self.label, self.startTime, self.endTime, self.endTime - self.startTime] + timeElapsed = self.endTime - self.startTime + runData = [self.label, self.startTime, self.endTime, timeElapsed] with open('benchData/time.csv', 'a') as f: writer = csv.writer(f) writer.writerow(runData) + def resetCSV(self): + header = ['Section','Start Time','End Time','Time Elapsed'] + with open('benchData/time.csv' , 'w') as f: + writer = csv.writer(f) + + writer.writerow(header) + \ No newline at end of file From 35e65fe984da5fef92aace664d7c3961aa2489d1 Mon Sep 17 00:00:00 2001 From: Kyle Date: Fri, 15 Oct 2021 12:58:14 -0400 Subject: [PATCH 3/4] Graph class implemented, not tested --- server.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/server.py b/server.py index 573f7f8..6f0e2cf 100644 --- a/server.py +++ b/server.py @@ -4,6 +4,8 @@ from stage import Stage from flask import Flask from runner import Runner +from benchmarking import Graph +from benchmarking import Time app = Flask(__name__) From 62c62c9b667a367281ba16ed5fc6f9f35772ad2d Mon Sep 17 00:00:00 2001 From: Kyle Date: Fri, 15 Oct 2021 13:00:22 -0400 Subject: [PATCH 4/4] Graph class implemented, not tested --- benchmarking.py | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/benchmarking.py b/benchmarking.py index 77942c6..a344cd3 100644 --- a/benchmarking.py +++ b/benchmarking.py @@ -3,25 +3,29 @@ import csv class Graph: - xvals = [] - yvals = [] + #static 2d array to store data + taskData = [[],[],[],[],[]] #initialize function to start our graph - def __init__(self, xlabel, ylabel): - self.xlabel = xlabel - self.ylabel = ylabel + def __init__(self): + self.title = 'Tasks per Request vs Average Reward' - #add data point for the graph + #add data point for the graph. Use x to specify the tasks per request def addPoint(self, x, y): - xvals.append(x) - yvals.append(y) - - #plot graph when finished - def plot(self): + taskData[x].append(y) + + #plot graph when finished, export to benchData + def plot(self, numTasks): + xvals = [] + yvals = [] + for x in range(0, numTasks): + xvals.append(x) + yvals.append(sum(taskData(x))/len(taskData(x))) plt.plot(xvals,yvals) - plt.xlabel(self.xlabel) - plt.ylabel(self.ylabel) - plt.show() + plt.xlabel('Tasks per Request') + plt.ylabel('Average Reward') + plt.title(self.title) + plt.savefig('benchData/taskVreward.png') class Time: #initialize function to give label @@ -39,14 +43,13 @@ def endClock(self): runData = [self.label, self.startTime, self.endTime, timeElapsed] with open('benchData/time.csv', 'a') as f: writer = csv.writer(f) - writer.writerow(runData) + #reset CSV file def resetCSV(self): header = ['Section','Start Time','End Time','Time Elapsed'] with open('benchData/time.csv' , 'w') as f: writer = csv.writer(f) - writer.writerow(header)