from timeit import Timer
class Timing:
def __init__(self, name, num, init, statement):
self.__timer = Timer(statement, init)
self.__num = num
self.name = name
self.statement = statement
self.__result = None
def timeit(self):
self.__result = self.__timer.timeit(self.__num)
def getResult(self):
return self.__result
def times(num=1000000, reverse=False, init='', **statements):
# time each statement
timings = []
for n, s in statements.iteritems():
t = Timing(n, num, init, s)
t.timeit()
timings.append(t)
# print results
timings.sort(key=Timing.getResult, reverse=reverse)
for t in timings:
print "%s => %.3f s" % (t.name, t.getResult())