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 'disable' of '_lsprof.Profiler' objects} Traceback (most recent call last): File "time_1.py", line 15, in <module> cProfile.run('main()') 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 'main' 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 'disable' of '_lsprof.Profiler' 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!