Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import timeit
- TIMER = None
- class TimeIt(object):
- def __init__(self, max_depth):
- self.max_depth = max_depth
- self.timers = []
- def start_measure(self, name=None):
- depth = len(self.timers)
- if depth >= self.max_depth:
- return
- timer = timeit.default_timer()
- if not name:
- name = "timer %d" % depth + 1
- spaces = depth * " "
- print(spaces + "[%s] start" % name)
- timer = timeit.default_timer()
- self.timers.append((timer, name))
- def stop_measure(self):
- # Not checking if we have any timers,
- # because that's a pretty serious bug we should blow up on
- # if len(self.timers) < 1:
- # return
- start, name = self.timers.pop()
- depth = len(self.timers)
- spaces = depth * " "
- msg = ""
- end = timeit.default_timer()
- msg += spaces
- msg += ("")
- msg += ("[%s] end\t" % name)
- msg += ("Elapsed time: %.3f seconds" % (end - start))
- print(msg)
- print("")
- def enable_timing(do_time, max_depth=10000):
- global TIMER
- if do_time and not TIMER:
- TIMER = TimeIt(max_depth)
- def start_measure(name=None):
- if TIMER:
- TIMER.start_measure(name=name)
- def stop_measure():
- if TIMER:
- TIMER.stop_measure()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement