Heim  >  Artikel  >  Backend-Entwicklung  >  Python-Laufzeitmethode

Python-Laufzeitmethode

高洛峰
高洛峰Original
2017-03-02 11:07:061405Durchsuche

In diesem Artikel werden hauptsächlich verschiedene Methoden der Python-Laufzeit im Detail vorgestellt und die Vor- und Nachteile jeder Laufzeitmethode analysiert

Die früheste Handschrift, die ich gesehen habe, ähnelt der folgenden:

 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()

Die Ausgabe ist wie folgt:

➜ Python python time_1.py

0:00:00.280797

Eine andere Methode ist die Verwendung des timeit-Moduls. Die Verwendungsmethode ist wie folgt:

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

Sie können dieses Timeit-Modul auch auf der Befehlszeile verwenden, wie folgt:

➜ 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

Hinweis: Das Timeit-Modul führt das Programm mehrmals aus, um eine genauere Zeit zu erhalten. Daher müssen die Auswirkungen einer wiederholten Ausführung vermieden werden. Beispielsweise wird bei Operationen wie x.sort() die Genauigkeit beeinträchtigt, da nach der ersten Ausführung die nachfolgenden Operationen bereits sortiert sind.
Eine andere Methode ist die Verwendung des cProfile-Moduls. Der Code lautet wie folgt und der Name ist 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()')

Führen Sie das Programm aus. Die Ergebnisse sind wie folgt:

➜ 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}

Die letzte Zeile im Code am Anfang ist cProfile.run('main() '), was darauf hinweist, dass es kein main() gibt. Ändern Sie einfach main() in den Funktionsnamen.

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er für alle beim Erlernen der Python-Programmierung hilfreich sein wird.

Weitere Artikel zu Python-Laufzeitmethoden finden Sie auf der chinesischen PHP-Website!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn