# Python speed testing - Time Difference - milliseconds

### Question

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
``````
1
116
4/19/2009 11:08:27 PM

`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 `c.total_seconds()`.

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.

171
11/9/2014 7:33:19 PM

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
``````