A very simple python module for measuring time.
pip install lauda
You can use lauda StopWatch to measure the time spent in a portion of code
from lauda import StopWatch watch = StopWatch() watch.start() for i in range(10000000): pass watch.stop() print ('Time spent in range {0}'.format(watch.elapsed_time))
You can also get the elapsed_time when the stopwatch is running
You can call checkpoint function if you want to set a checkpoint and get the time spent between the last checkpoint:
from lauda import StopWatch watch = StopWatch() watch.start() for i in range(10000000): pass check_time = watch.checkpoint() print ('Time spent in first range: {0} sec.'.format(check_time)) for i in range(10000000): pass check_time = watch.checkpoint() print ('Time spent in second range: {0} sec.'.format(check_time))
If you want to measure an entire function execution, you can decorate it using the stopwatch decorator
from lauda import stopwatch @stopwatch def awesome_mul(a, b): return a * b
By default stopwatch decorator will print the time spent inside the decorated function, if you want more control you can pass to your decorator a callback that will receive a StopWatch instance and the decorated function.
from lauda import stopwatch def stopwatch_sum_cb(watch, function): print ('Time spent {0}'.format(watch.elapsed_time)) @stopwatch(callback=stopwatch_sum_cb) def awesome_sum(a, b): return a + b
If you want to measure a block of code, you can use the stopwatchcm context manager
from lauda import stopwatchcm with stopwatchcm(): c = a * b
By default stopwatchcm context manager will print the time spent inside the context manager body, if you want more control you can pass to your context manager a callback that will receive a StopWatch instance.
from lauda import stopwatchcm def stopwatch_sum_cb(watch): print ('Time spent {0}'.format(watch.elapsed_time)) with stopwatchcm(callback=stopwatch_sum_cb): c = a + b