Home  >  Article  >  Backend Development  >  python runtime method

python runtime method

高洛峰
高洛峰Original
2017-03-02 11:07:061437browse

This article mainly introduces several methods of Python running time in detail, and analyzes the pros and cons of each running time method. Interested friends can refer to

The earliest I have seen handwriting , similar to the following:

 import datetime
 def time_1():

 begin = datetime.datetime.now()

 sum = 0

 for i in xrange(10000000):

  sum = sum + i

 end = datetime.datetime.now()

 return end-begin
print time_1()

The output is as follows:

➜ Python python time_1.py

0:00:00.280797

Another method is to use the timeit module. The usage method is as follows:

In [5]: import timeit
In [6]: timeit.timeit("sum(range(100))")
Out[6]: 1.2272648811340332

You can also use this timeit module on the command line, as follows:

➜ Python python -m timeit -s"import time_1 as t" "t.time_1()"
0:00:00.282044
10 loops, best of 3: 279 msec per loop

Note:The timeit module will run the program multiple times to obtain a more accurate time, so the impact of repeated execution needs to be avoided. For example, for operations such as x.sort(), since after the first execution, the subsequent operations are already sorted, the accuracy is affected.
Another method is to use the cProfile module. The code is as follows and the name is time_1.py:

 import datetime

 def time_1():

 begin = datetime.datetime.now()

 sum = 0

 for i in xrange(10000000):

  sum = sum + i

 end = datetime.datetime.now()

 return end-begin



 if __name__ == '__main__':

 print time_1()

import cProfile

 cProfile.run('time_1()')

The result of running the program is as follows :

➜ Python python time_1.py

0:00:00.282828

  2 function calls in 0.000 seconds 

 Ordered by: standard name

 ncalls tottime percall cumtime percall filename:lineno(function)

 1 0.000 0.000 0.000 0.000 <string>:1(<module>)

 1 0.000 0.000 0.000 0.000 {method &#39;disable&#39; of &#39;_lsprof.Profiler&#39; objects}

Traceback (most recent call last):

 File "time_1.py", line 15, in <module>

 cProfile.run(&#39;main()&#39;)

 File "/usr/lib/python2.7/cProfile.py", line 29, in run

 prof = prof.run(statement)

 File "/usr/lib/python2.7/cProfile.py", line 135, in run

 return self.runctx(cmd, dict, dict)

 File "/usr/lib/python2.7/cProfile.py", line 140, in runctx

 exec cmd in globals, locals

 File "<string>", line 1, in <module>

NameError: name &#39;main&#39; is not defined

➜ Python vi time_1.py

➜ Python python time_1.py

0:00:00.284642

  5 function calls in 0.281 seconds

 Ordered by: standard name

 ncalls tottime percall cumtime percall filename:lineno(function)

 1 0.000 0.000 0.281 0.281 <string>:1(<module>)

 1 0.281 0.281 0.281 0.281 time_1.py:3(time_1)

 2 0.000 0.000 0.000 0.000 {built-in method now}

 1 0.000 0.000 0.000 0.000 {method &#39;disable&#39; of &#39;_lsprof.Profiler&#39; objects}

The last line in the code at the beginning is cProfile.run('main()'), it prompts that there is no main(), replace main() Just change it to the function name.

The above is the entire content of this article. I hope it will be helpful to everyone learning python programming.

For more articles related to python running time methods, please pay attention to the PHP Chinese website!


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn