Let me start off by saying I know almost nothing about python but have to write a program in three different languages (already done in java and c++).
I need to be able to time the execution of a method a certain number of times and then print the time it took for the over-all execution time.
I.e.
I have function A
(which is performSearch(arrayTest)
where arrayTest
is an array of known size). A
is executed 10 times
I need to be able to time how long it took from before A
was executed to after A
was executed.
The “%timeit” is a line magic command in which the code consists of a single line or should be written in the same line for measuring the execution time. In the “%timeit” command, the particular code is specified after the “%timeit” is separated by a space.
Time number executions of the main statement. This executes the setup statement once, and then returns the time it takes to execute the main statement a number of times, measured in seconds as a float.
The timeit module is a built-in library in Python programming. timeit is used to measure the execution time for the small python code snippets. This module runs the code a million times (by default) to get the most precise value for the code execution time.
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 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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With