ok dokey, performance ist ein wenig besser
This commit is contained in:
@@ -61,10 +61,15 @@ class Simulation():
|
||||
"""
|
||||
keys=list(self.tick_funcs.keys())
|
||||
random.shuffle(keys)
|
||||
tasks=[]
|
||||
for k in keys:
|
||||
fun=self.tick_funcs[k]
|
||||
fun(self.tick_count,self.episode_count)
|
||||
|
||||
self.taskpool.map(self._execute_tick,tasks)
|
||||
|
||||
def _execute_tick(args):
|
||||
fun=args[0]
|
||||
fun(args[1],args[2])
|
||||
|
||||
def tick(self,episode_length):
|
||||
"""
|
||||
@@ -83,13 +88,15 @@ class Simulation():
|
||||
busstep=time.time()
|
||||
self.tick_count+=1
|
||||
self.log_cxs_tick(episode_length)
|
||||
self.log_business_tick(episode_length)
|
||||
#self.log_business_tick(episode_length)
|
||||
logstep=time.time()
|
||||
self.timings["dss"]+=setup-start
|
||||
self.timings["dsa"]+=agentstep-setup
|
||||
self.timings["dsap"]=self.timings["dsa"]/(len(self.tick_funcs)+1)
|
||||
self.timings["dab"]+=busstep-agentstep
|
||||
self.timings["dbl"]+=logstep-busstep
|
||||
self.timings["dt"]+=logstep-start
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -98,13 +105,23 @@ class Simulation():
|
||||
Resets all agents to new Episode
|
||||
"""
|
||||
self.log_cxs_episode()
|
||||
self.log_business_episode()
|
||||
for k,v in self.reset_funcs.items():
|
||||
v(self.episode_count)
|
||||
for cell_id,cell in self.cells.items():
|
||||
cell.setup_supply_for_episode()
|
||||
toclose=[]
|
||||
for b in self.businesses:
|
||||
b.tick_episode(self.episode_count)
|
||||
if b.balance<=0:
|
||||
self.remove_business(b.id)
|
||||
toclose.append(b.id)
|
||||
for close in toclose:
|
||||
self.remove_business(close)
|
||||
self.timings["numBus"]=len(self.businesses)
|
||||
self.timings["tickfuncs"]=len(self.tick_funcs)
|
||||
self.timings["episode"]=self.episode_count
|
||||
log.PerformanceData.append(self.timings.copy())
|
||||
self.setup_timing(["dss","dsa","dsap","dab","dbl","dt"])
|
||||
self.tick_count=0
|
||||
self.episode_count+=1
|
||||
|
||||
@@ -239,7 +256,10 @@ class Simulation():
|
||||
def log_business_tick(self,episode_length):
|
||||
for bus in self.businesses:
|
||||
bus.log(self.episode_count,episode_length,self.tick_count)
|
||||
|
||||
def log_business_episode(self):
|
||||
for bus in self.businesses:
|
||||
bus.log(self.episode_count,1,0)
|
||||
|
||||
def setup_timing(self,metrics):
|
||||
for met in metrics:
|
||||
self.timings[met]=0
|
||||
Reference in New Issue
Block a user