Heim  >  Artikel  >  Backend-Entwicklung  >  So führen Sie eine Leistungsoptimierung für Python durch

So führen Sie eine Leistungsoptimierung für Python durch

伊谢尔伦
伊谢尔伦Original
2017-06-28 13:33:151288Durchsuche

Python-Kritiker behaupten, Python sei ineffizient und langsam, aber das ist nicht der Fall: Probieren Sie diese 6 Tipps aus, um Ihre Python-Anwendungen zu beschleunigen.

Python ist eine sehr coole Sprache, weil sehr wenig Python-Code viele Dinge in kurzer Zeit erledigen kann und Python problemlos Multitasking und Multiprocessing unterstützen kann.

py

1. Schlüsselcodes können von Erweiterungspaketen abhängen

Python macht viele Programmieraufgaben einfach, aber nicht Bei sehr kritischen Aufgaben bietet es nicht immer die beste Leistung. Die Verwendung von C-, C++- oder Maschinensprachenerweiterungspaketen zur Ausführung kritischer Aufgaben kann die Leistung erheblich verbessern. Diese Pakete sind plattformabhängig, d. h. Sie müssen Pakete verwenden, die für die von Ihnen verwendete Plattform spezifisch sind. Kurz gesagt bietet diese Lösung eine gewisse Anwendungsportabilität im Austausch für eine Leistung, die Sie nur durch die direkte Programmierung auf dem zugrunde liegenden Host erreichen können. Die folgenden Erweiterungspakete können Sie Ihrer persönlichen Erweiterungsbibliothek hinzufügen:

Cython
PyInlne
PyPy
Pyrex

Diese Pakete haben unterschiedliche Funktionen und Ausführungsmethoden. Mit Pyrex können Sie beispielsweise einige Speicheraufgaben einfach und effizient erledigen. Mit PyInline können Sie C-Code direkt in Python-Anwendungen verwenden. Obwohl der Inline-Code separat kompiliert wird, kann er verwendet werden gleichzeitig ein Ort für alles.

2. Verwenden Sie die Schlüsselwortsortierung

Es gibt viele alte Python-Codes, die zusätzliche Zeit für die Erstellung einer benutzerdefinierten Sortierfunktion benötigen. Der beste Weg zum Sortieren ist die Verwendung von Schlüsselwörtern und der Standardmethode sort(). Schauen Sie sich das folgende Beispiel an:

import operator
somelist = [(1, 5, 8), (6, 2, 4), (9, 7, 5)]
somelist.sort(key=operator.itemgetter(0))
somelist
#Output = [(1, 5, 8), (6, 2, 4), (9, 7, 5)]
somelist.sort(key=operator.itemgetter(1))
somelist
#Output = [(6, 2, 4), (1, 5, 8), (9, 7, 5)]
somelist.sort(key=operator.itemgetter(2))
somelist
#Output = [(6, 2, 4), (9, 7, 5), (1, 5, 8)],

Die Liste jedes Falls wird nach dem Index sortiert, den Sie als Schlüsselwort ausgewählt haben Argument: Diese Methode eignet sich auch für String und numerische Sortierung.

3. Schleifen optimieren

Jede Programmiersprache legt Wert auf die Optimierung von Schleifenanweisungen, und Python ist dasselbe. Obwohl Sie auf eine Fülle von Techniken zurückgreifen können, um Schleifen schneller laufen zu lassen, übersehen Entwickler oft eine Methode, die Verwendung von punktierten Zeichenfolgen innerhalb der Schleife zu vermeiden. Für das folgende Beispiel:

lowerlist = ['this', 'is', 'lowercase']
upper = str.upper
upperlist = []
append = upperlist.append
for word in lowerlist:
    append(upper(word))
    print(upperlist)
    #Output = ['THIS', 'IS', 'LOWERCASE']

Jedes Mal, wenn str.upper aufgerufen wird, findet Python den Wert dieser Methode. Wenn Sie das Auswertungsergebnis jedoch in eine Variable einfügen, können Sie die Leistung des Programms verbessern. Der Schlüssel besteht darin, die Anzahl der in Python ausgeführten Schleifen zu reduzieren, da Python diese Instanzen langsamer analysiert.

4. Nutzen Sie die neue Version

Wer online nach Python-Informationen sucht, findet unzählige Informationen zur Python-Versionsmigration. Normalerweise wurde jede Python-Version gegenüber der Vorgängerversion optimiert und verbessert, um die Ausführung von Python zu beschleunigen. Der limitierende Faktor ist, ob Ihre Lieblingsbibliothek für die neue Python-Version verbessert wurde.

Wenn Sie eine neue Funktionsbibliothek verwenden und eine neue Version von Python erhalten, müssen Sie sicherstellen, dass der Code weiterhin ausgeführt werden kann, die Anwendung überprüfen und die Unterschiede korrigieren.

Wenn Sie jedoch nur sicherstellen, dass die Anwendung auf der neuen Version ausgeführt werden kann, verpassen Sie möglicherweise die Aktualisierung neuer Funktionen. Sobald Sie Verbesserungen vornehmen, Ihre Anwendung unter der neuen Version konfigurieren, nach Problembereichen suchen und Updates mit neuen Funktionen priorisieren, werden Benutzer noch größere Leistungsverbesserungen gegenüber früheren Upgrades feststellen.

5. Probieren Sie verschiedene Programmiermethoden aus.

Verwenden Sie jedes Mal, wenn Sie eine Anwendung erstellen, das Programm möglicherweise langsamer langsam. Führen Sie während der Analyse einige kleine Experimente durch. Wenn Sie beispielsweise Datenelemente in einem Wörterbuch verwalten, können Sie eine sichere Methode verwenden, um festzustellen, ob das Datenelement bereits vorhanden ist und aktualisiert werden muss, oder Sie können den Eintrag direkt hinzufügen und dann den Fall behandeln, in dem das Element nicht vorhanden ist alle.

n = 16
myDict = {}
for i in range(0, n):
    char = 'abcd'[i%4]
    if char not in myDict:
        myDict[char] = 0
        myDict[char] += 1
        print(myDict)

Der obige Code wird normalerweise schneller ausgeführt, wenn myDict leer ist. Wenn myDict jedoch bereits mit Daten gefüllt ist, gibt es eine bessere Möglichkeit zur Auswahl:

n = 16
myDict = {}
for i in range(0, n):
    char = 'abcd'[i%4]
    try:
        myDict[char] += 1
    except KeyError:
        myDict[char] = 1
    print(myDict)

In beiden Fällen wird {'d': 4, 'c': 4, 'b': 4, 'a': 4}, der einzige Unterschied besteht darin, wie die Ausgabe erhalten wird. Wenn Sie über den Tellerrand hinausschauen und neue Programmiertechniken entwickeln, können Ihre Programme schneller laufen.

6. Cross-Compiler

Entwickler vergessen manchmal, dass der Computer keine aktuelle Anwendungssprache erkennt, sondern nur Maschinencode. Um ein Programm auszuführen, ist eine Anwendung erforderlich, die von Menschen lesbaren Code in Code umwandelt, den der Computer verstehen kann. Wenn Sie ein Programm in einer Sprache wie Python schreiben und es dann in einer anderen Sprache wie C++ ausführen, ist dies aus Leistungssicht sinnvoll. Dies hängt davon ab, was Sie mit der Anwendung machen möchten und welche Ressourcen das Hostsystem bereitstellen kann.

Ein interessanter Cross-Compiler, Nuitka, kann Python in C++-Code konvertieren. Das Ergebnis ist, dass Sie die Anwendung im nativen Modus ausführen können, anstatt sich auf den Interpreter zu verlassen. Je nach Plattform und Aufgabe können Sie erhebliche Leistungsverbesserungen feststellen.

Das obige ist der detaillierte Inhalt vonSo führen Sie eine Leistungsoptimierung für Python durch. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen 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