What is the proper way to compare 2 times in Python in order to speed test a section of code? I tried reading the API docs. I'm not sure I understand the timedelta thing.
So far I have this code:
from datetime import datetime tstart = datetime.now() print t1 # code to speed test tend = datetime.now() print t2 # what am I missing? # I'd like to print the time diff here
datetime.timedelta is just the difference between two datetimes ... so it's like a period of time, in days / seconds / microseconds
>>> a = datetime.datetime.now() >>> b = datetime.datetime.now() >>> c = b - a >>> c datetime.timedelta(0, 4, 316543) >>> c.days 0 >>> c.seconds 4 >>> c.microseconds 316543
Be aware that
c.microseconds only returns the microseconds portion of the timedelta! For timing purposes always use
You can do all sorts of maths with datetime.timedelta, eg:
>>> c / 10 datetime.timedelta(0, 0, 431654)
It might be more useful to look at CPU time instead of wallclock time though ... that's operating system dependant though ... under Unix-like systems, check out the 'time' command.
Since Python 2.7 there's the timedelta.total_seconds() method. So, to get the elapsed milliseconds:
>>> import datetime >>> a = datetime.datetime.now() >>> b = datetime.datetime.now() >>> delta = b - a >>> print delta 0:00:05.077263 >>> int(delta.total_seconds() * 1000) # milliseconds 5077