Here is a handy Python Timer class. It creates a context manager object, used for timing a block of code.
from timeit import default_timer
class Timer(object):
def __init__(self, verbose=False):
self.verbose = verbose
self.timer = default_timer
def __enter__(self):
self.start = self.timer()
return self
def __exit__(self, *args):
end = self.timer()
self.elapsed_secs = end - self.start
self.elapsed = self.elapsed_secs * 1000 # millisecs
if self.verbose:
print 'elapsed time: %f ms' % self.elapsed
To use the Timer (context manager object), invoke it using Python's `with` statement. The duration of the context (code inside your `with` block) will be timed. It uses the appropriate timer for your platform, via the `timeit` module.
Timer is used like this:
with Timer() as target:
# block of code goes here.
# result (elapsed time) is stored in `target` properties.
Example script:
timing a web request (HTTP GET), using the `requests` module.
#!/usr/bin/env python
import requests
from timer import Timer
url = 'https://github.com/timeline.json'
with Timer() as t:
r = requests.get(url)
print 'fetched %r in %.2f millisecs' % (url, t.elapsed)
Output:
fetched 'https://github.com/timeline.json' in 458.76 millisecs
`timer.py` in GitHub Gist form, with more examples:





