Skip to content

Instantly share code, notes, and snippets.

@dbf256
Last active October 21, 2016 02:30
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dbf256/0f1d5d7d2c9aa70bce89 to your computer and use it in GitHub Desktop.
Save dbf256/0f1d5d7d2c9aa70bce89 to your computer and use it in GitHub Desktop.
Event timer - simple time tracing for Python
import datetime
class EventTimer:
def __init__(self, name):
self.events = []
self.timer = None
self.name = name
def reset(self):
self.timer = datetime.datetime.utcnow()
self.events = []
def event(self, label):
self.events.append((label, datetime.datetime.utcnow()))
def to_string(self):
out = self.name + ' '
prev_stamp_ms = 0
for event in self.events:
stamp = event[1] - self.timer
stamp_ms = stamp.seconds * 1000 + stamp.microseconds / 1000
delta_ms = stamp_ms - prev_stamp_ms
prev_stamp_ms = stamp_ms
out += (event[0] + ': ' + str(stamp_ms) + 'ms(' + str(delta_ms) + 'ms) ')
return out
timer = EventTimer('Data processing')
timer.reset()
timer.event('Start')
items = load_items()
timer.event('Loaded')
preprocess_items(items)
timer.event('Preprocessed')
process_items(items)
timer.event('Processed')
save_items(items)
timer.event('Saved')
print timer.to_string()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment