Einführung
Ein Pycon 2021, der Schöpfer der Python-Sprache, Sir Guido Van Rossum entwarf seine langfristigen und kurzfristigen Pläne, um zukünftige Versionen von Python schneller zu machen, und stellt sich vor, dies doppelt so schnell zu tun wie derzeit.. PyPy und CPython sind einige der bestehenden Beispiele, die versuchen, die Ausführungsgeschwindigkeit von Python zu erhöhen, Sie können es aber auch selbst tun, wenn Sie nur einige Tipps und Tricks befolgen, um Ihre Programmierkenntnisse zu verbessern, damit Sie effizienten Code schreiben und weder Speicher noch CPU-Zeit verschwenden.

Dann, Warum Python wählen??
Python hat sich zu einer der am meisten akzeptierten Sprachen entwickelt, da es einfach zu programmieren und sehr bequem zu bedienen ist.. Geschwindigkeit war nie eine der Stärken von Python, aber es bedeutet nicht, dass Sie immer ineffiziente Ergebnisse liefern müssen. In Python bevorzugen die Leute „Entwicklungsgeschwindigkeit ” über ihn „Ausführungsgeschwindigkeit“. Möglicherweise nicht die rohe Leistung von C oder Java, aber Sie werden überrascht sein, wie schnell eine richtig optimierte Python-Anwendung ausgeführt werden kann. Diese Geschwindigkeit reicht aus, um verschiedene Anwendungen wie die Datenanalyse zu betreiben, Automatisierungstools, Verwaltung und viele andere. Wenn Sie einige Standardcodierungstipps und -verfahren befolgen, Sie könnten fast vergessen, dass Sie in erster Linie die App-Leistung gegen die Entwicklerproduktivität eingetauscht haben.
1. Codeprofile

In Wirklichkeit, Sie müssen Ihren Code außerhalb Ihrer Test- oder UAT-Umgebung und direkt in der Produktions- oder Live-Umgebung messen, um genau herauszufinden, warum oder wo Ihr Code langsamer läuft. Hier kommt die Profilerstellung ins Spiel und Sie können die integrierte Software von Python verwenden „CProfil“ Modul, um Ihren Code auf Teile zu untersuchen, die die Leistung Ihres allgemeinen Codes beeinträchtigen könnten.
Wenn Sie eine höhere Präzision benötigen, Sie können jeden anderen leistungsstarken Profiler verwenden, der Ihnen eine eingehende Analyse bietet, aber in vielen Fällen, Ein einfacher Profiler kann viel dazu beitragen, die schuldige Funktion oder Codezeile aufzuspüren, die einen Engpass verursacht. in Ausführung. Sie werden in der Lage sein, eine Baseline genau zu identifizieren und zu testen, um abnormale Muster oder Ausführungszeiten in verschiedenen Bereitstellungsszenarien zu ermitteln, und Sie können versuchen, vorzeitig zu raten, aber das kann nicht zu viel Erfolg führen und, Daher, Sie sollten immer einen Profiler verwenden, um Ihren Code effizient aufzuschlüsseln.
2. Auswendiglernen

Auswendiglernen ist ein Prozess, bei dem die gleiche Arbeit nicht immer wieder wiederholt wird, auch wenn es sich um eine Funktion handelt, deren Wert bereits vorher berechnet wurde. Python bietet Ihnen die Möglichkeit eines Caches, der Ihnen die Möglichkeit gibt, sofort Ergebnisse von Funktionen zu erhalten, die zuvor berechnet wurden. Diese speziellen Python-Funktionalitäten werden als Dekoratoren bezeichnet und können in Ihrem Code verwendet werden, um Ihren Code zu beschleunigen..
Eingang :
Importzeit
def fib(n):
wenn nein < 2:
zurück n
anders:
zurückgeben(n-1) + Flunkerei(n-2)
t1 = timeit.Timer("Flunkerei(40)", "von __main__ fib importieren")
drucken(t1.timeit(1))
Abfahrt: (auf meinem lokalen Rechner)
47.392615799999994
Fügen Sie die folgenden zwei Codezeilen hinzu:
aus functools importieren lru_cache @lru_cache(maximale Größe=100)
Abfahrt: (auf meinem lokalen Rechner)
5.8000000000002494e-05
Schockierend, Es ist nicht so? Das ist die Macht von LRU_Cache in der Funktionsbibliothek. Sie können einen benutzerdefinierten Wert für den LRU-Cache festlegen oder auf setzen ‚Keiner‘ um alles aufzubewahren. Wird verwendet, um sich häufig wiederholende Werte innerhalb eines festgelegten Zeitraums zu speichern. Zum Beispiel, vielleicht die zuletzt abgerufenen Gegenstände der letzten 24 Stunden oder ein Wert, der in der nächsten Zeit mehrmals aufgerufen wird 24 Std.
3. Verwenden Sie Numpy für alle mathematischen Operationen

NumPy ist berühmt für seine mathematischen Operationen, die auf Matrizen oder jeder Art von Matrix basieren, aber die geheime Zutat hier ist, dass numerische Daten effizienter gespeichert werden als die integrierten Datenstrukturen von Python. Das Paket enthält viele Ersatz für traditionelle mathematische Operationen und, da es die C-Bibliotheken verwendet, es ist viel schneller als allgemeine Python-Funktionen. NumPy verwaltet auch effizient Ihren Speicher für sehr große Datenstrukturen, wie Listen mit einer Million Artikeln.
Numpy kann optimieren und bis zu sparen 75% mehr Platz als normale Python-Listen. NumPy Array ist das einzige, was Arrays wie in Java oder C nahe kommt und einfach zu deklarieren und zu verwenden ist und, Daher, hält sich an die anfängliche Verpflichtung von „Entwicklungsgeschwindigkeit“.
4. Verwenden Sie nach Möglichkeit immer eine C-Bibliothek

Wie ihr schon gesehen habt, die Verwendung von NumPy in Verbindung mit C-Bibliotheken und wie mächtig es sein kann. Ein ähnliches Konzept lässt sich auch auf andere Bibliotheken und Funktionen übertragen. Python-Bibliotheken sind nicht so effizient wie Cones und, Daher, wenn Sie die Möglichkeit oder Möglichkeit haben, eine C-Bibliothek zu verwenden, Wählen Sie immer die C-Bibliothek. Sie sind schneller und effizienter als ihre jeweiligen Python-Bibliotheken. Python C-Typen Library ist ein hervorragendes Beispiel, das mit der Python-Laufzeit kompatibel ist und die Vorteile von C . nutzt.
Die besten Ergebnisse erzielen Sie, wenn Sie die Anzahl der Fahrten von C nach Python reduzieren, da die Weitergabe von Daten zwischen ihnen eine kostspielige Operation ist. Zum Beispiel, Betrachten Sie zwei Szenarien, in denen Sie jeweils einen Wert in einer Schleife von Python an C übergeben, berechnen und zurückgeben und, in einem anderen Fall, eine Liste an C weitergeben, führe dort deine Berechnung durch und sende das Ergebnis zurück. Wählen Sie immer die zweite Option, da es bei dieser Methode viel schneller und effizienter ist.
5. Kennen Sie Ihre Bibliothek und ihre Funktionen

Es ist sehr einfach, alle Ihnen bekannten Bibliotheken in einen Code einzubinden, und Sie müssen sich nie um den Import kümmern, außer in der Praxis, das ist eine der schlechtesten arten zu codieren. Es ist analog, zu viel Essen zu bestellen, als Sie normalerweise verarbeiten können und, schließlich, du wirst dich müde fühlen und schwer zu beenden. Während Python eine mächtige Sprache sein kann, Es ist keine Entschuldigung, alle vorhandenen Bibliotheken darin zu sammeln, nur um Fehler zu vermeiden. jedoch, Sie beschädigen Ihren eigenen Code, wenn Sie mehr als die erforderlichen Bibliotheken in Ihren Python-Code importieren. Denken Sie immer daran, welche Funktionen Sie benötigen und welche Bibliotheken zusätzlich sind. Entfernen Sie die Zeile oder kommentieren Sie sie aus, um diesen Overhead zu entfernen und Ihr Code wird schneller ausgeführt.
Abschließende Anmerkungen
Jetzt kennen Sie einige Tipps und Tricks, wie Sie Ihren Code mit ein paar einfachen Techniken schneller und effizienter machen können und wenn Sie weitere Fragen haben, kontaktiere mich gerne unter LinkedIn oder wenn Sie die geometrische Brownsche Bewegung und die Börse mögen, Sie können einen anderen meiner Artikel hier sehen. Bleibt gesund und habt einen schönen Tag.
Die in diesem Artikel gezeigten Medien über 5 Tipps und Tricks zur Beschleunigung Ihrer Python-Programme sind nicht Eigentum von DataPeaker und werden nach Ermessen des Autors verwendet.



