Heim > Backend-Entwicklung > Python-Tutorial > Mein Python-Programm ist zu langsam. Wie kann ich es beschleunigen?

Mein Python-Programm ist zu langsam. Wie kann ich es beschleunigen?

王林
Freigeben: 2023-09-11 17:01:02
nach vorne
749 Leute haben es durchsucht

Mein Python-Programm ist zu langsam. Wie kann ich es beschleunigen?

Wenn Ihr Python-Programm zu langsam ist, können Sie die unten aufgeführten Tipps und Tricks befolgen -

Abstrakt

Vermeiden Sie übermäßige Abstraktion, insbesondere in Form winziger Funktionen oder Methoden. Abstraktion führt tendenziell zu Indirektheit und zwingt den Interpreten zu mehr Arbeit. Wenn der Grad der Indirektion die Menge der geleisteten nützlichen Arbeit übersteigt, wird Ihr Programm langsamer

Vermeiden Sie den Schleifenaufwand

Wenn der Schleifenkörper sehr einfach ist, kann der Interpreter-Overhead der for-Schleife selbst einen großen Teil des Overheads ausmachen. Hier funktioniert die Kartenfunktion besser. Die einzige Einschränkung besteht darin, dass der Schleifenkörper von Map ein Funktionsaufruf sein muss.

Die chinesische Übersetzung von

Beispiel

lautet:

Beispiel

Sehen wir uns ein Schleifenbeispiel an

newlist = []
for word in oldlist:
   newlist.append(word.upper())
Nach dem Login kopieren

Wir können „map“ anstelle der obigen Schleife verwenden, um den Overhead zu vermeiden –

newlist = map(str.upper, oldlist)
Nach dem Login kopieren

Verwenden Sie das Listenverständnis

Die Verwendung von Listenverständnissen verursacht weniger Overhead als for-Schleifen. Sehen wir uns das gleiche Beispiel an, das mithilfe von Listenverständnissen implementiert wurde -

newlist = [s.upper() for s in oldlist]
Nach dem Login kopieren

Generatorausdrücke

Generatorausdrücke wurden in Python 2.4 eingeführt. Diese gelten als die beste Alternative zu Schleifen, da sie den Aufwand vermeiden, die gesamte Liste auf einmal zu generieren. Stattdessen geben sie ein Generatorobjekt zurück, das Stück für Stück iteriert werden kann -

iterator = (s.upper() for s in oldlist)
Nach dem Login kopieren

Lokale Variablen

Python greift effizienter auf lokale Variablen zu als auf globale Variablen. Wir können das obige Beispiel mithilfe lokaler Variablen selbst implementieren -

def func():
   upper = str.upper
   newlist = []
   append = newlist.append
   for word in oldlist:
      append(upper(word))
   return newlist
Nach dem Login kopieren

Mehraufwand für Importanweisungen

Importanweisungen können einfach ausgeführt werden. Es ist oft sinnvoll, sie innerhalb von Funktionen zu platzieren, um ihre Sichtbarkeit einzuschränken und/oder die anfängliche Startzeit zu verkürzen. In einigen Fällen kann die wiederholte Ausführung von Importanweisungen die Leistung erheblich beeinträchtigen.

Verbindungszeichenfolge

Dies ist eine bessere und schnellere Option, wenn Sie mehrere Zeichenfolgen mithilfe von Join verketten. Wenn jedoch nicht viele Zeichenfolgen vorhanden sind, ist es effizienter, den Operator „+“ für die Verkettung zu verwenden. Die Ausführung nimmt weniger Zeit in Anspruch. Schauen wir uns das anhand von zwei Beispielen an.

Verwenden Sie den +-Operator, um mehrere Zeichenfolgen zu verketten

Die chinesische Übersetzung von

Example

lautet:

Example

Wir werden nun viele Strings verketten und die Ausführungszeit mithilfe des Zeitmoduls −

überprüfen
from time import time
myStr =''
a='gjhbxjshbxlasijxkashxvxkahsgxvashxvasxhbasxjhbsxjsabxkjasjbxajshxbsajhxbsajxhbasjxhbsaxjash'
l=[]

# Using the + operator
t=time()
for i in range(1000):
   myStr = myStr+a+repr(i)
print(time()-t)
Nach dem Login kopieren

Ausgabe

0.003464221954345703
Nach dem Login kopieren

Verwenden Sie Join, um mehrere Zeichenfolgen zu verbinden

Die chinesische Übersetzung von

Example

lautet:

Example

Wir werden nun Join verwenden, um viele Zeichenfolgen zu verketten und die Ausführungszeit zu überprüfen. Wenn wir viele Zeichenfolgen haben, ist die Verkettung eine bessere und schnellere Option -

from time import time

myStr =''
a='gjhbxjshbxlasijxkashxvxkahsgxvashxvasxhbasxjhbsxjsabxkjasjbxajshxbsajhxbsajxhbasjxhbsaxjash'
l=[]

# Using the + operator
t=time()
for i in range(1000):
   l.append(a + repr(i))
z = ''.join(l)
print(time()-t)
Nach dem Login kopieren

Ausgabe

0.000995635986328125
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonMein Python-Programm ist zu langsam. Wie kann ich es beschleunigen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage