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

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

王林
王林nach vorne
2023-09-11 17:01:02730Durchsuche

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

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

newlist = map(str.upper, oldlist)

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]

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)

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

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)

Ausgabe

0.003464221954345703

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)

Ausgabe

0.000995635986328125

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen