Source code for spux.utils.timing

# # # # # # # # # # # # # # # # # # # # # # # # # #
# Timing class
#
# Jonas Sukys
# Eawag, Switzerland
# jonas.sukys@eawag.ch
# All rights reserved.
# # # # # # # # # # # # # # # # # # # # # # # # # #

from .timer import Timer

[docs]class Timing (object): def __init__ (self): self.timers = {} self.runtimes = {} self.timestamps = {}
[docs] def start (self, name): if name not in self.timers: self.timers [name] = Timer () self.timers [name] .start ()
[docs] def time (self, name): if name not in self.runtimes: self.runtimes [name] = 0 self.timestamps [name] = [] self.runtimes [name] += self.timers [name] .current() self.timestamps [name] += [self.timers [name] .timestamp()]
def __iadd__ (self, timing): for name in timing.runtimes.keys (): if name in self.runtimes.keys (): self.runtimes [name] += timing.runtimes [name] self.timestamps [name] += timing.timestamps [name] else: self.runtimes [name] = timing.runtimes [name] self.timestamps [name] = timing.timestamps [name] return self