How to use timeit when timing a function

微笑、不失礼 提交于 2019-11-30 14:15:51

You can read how to use timeit here.

And assuming you have a function called performSearch in the same file that your running timeit from the following would work.

import timeit

def performSearch(array):
    array.sort()


arrayTest = ["X"]*1000

if __name__ == "__main__":
    print timeit.timeit("performSearch(arrayTest)","from __main__ import performSearch, arrayTest",number=10)

Which returns:

0.000162031766607

You could do something like this:

import time

start = time.time()
A()
end = time.time()
print "Took %f ms" % ((end - start) * 1000.0)

if you want something simpler

import time
startMillis = int(round(time.time() * 1000))
print startMillis
time.sleep(5) # this is your function that takes time to execute
endMillis = int(round(time.time() * 1000))
print endMillis

timeTaken = endMillis - startMillis

yes well, just time it.

ex

total= 0
for i in range(1000):
    start= time.clock()
    function()
    end= time.clock()
    total += end-start
time= total/1000

You can use below code as an example:

import timeit

def string_generator(size):
    return (size/8) * "ABCDEFGH"

if __name__ == "__main__":
    #the below line runs the statement inside of '' for 100 times (number).
    print timeit.timeit('"-".join(str(n) for n in range(100))',number=100)
    #the below line runs the statement inside of '' for 10 times (number) and repeat it 3 times.
    print timeit.repeat('"-".join(str(n) for n in range(100))',repeat=3,number=10)
    #if you would like to time a function, you can do it similar to below example:
    print timeit.timeit("string_generator(2**12)", setup="from __main__ import string_generator")

The results are :

0.00784516334534
[0.0009770393371582031, 0.00036597251892089844, 0.00037407875061035156]
0.414484977722

The unit for the results is second. More examples are exist in python website. enter link description here

Also you can use ipython. The same example is listed below.

In [25]: %timeit "-".join(str(n) for n in range(100))

The result is :

10000 loops, best of 3: 22.9 µs per loop

As you can see, the unit is macro second.

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!