Python schnell - Wie macht man Python schnell und Python-Psyco?

Inhaltsverzeichnis:

Anonim

Bildquelle: pixabay.com

Wie man Python so schnell macht wie Psyco

Hallo Leute, willkommen zu meinem nächsten Blog von Python. Aber heute werde ich nicht nur schnell über Python sprechen. Bevor ich fortfahre, würde ich davon ausgehen, dass Sie bereits Bits und * Bytes über Python kennen. Wenn Sie ein Anfänger sind, können Sie nach meinen anderen Blogs suchen, mehr über Python erfahren und dann zu uns zurückkehren. Jetzt diskutieren wir das Thema Python schnell wie Psyco.

Wenn Sie ein erfahrener Programmierer auf einem anderen Gebiet sind und glauben, dass Sie die Grundlagen kennen und jetzt diesen Blog lesen können, stellen Sie sich einfach eine Frage: Wissen Sie, was ist Psyco? Wenn Sie an diesem Punkt denken, dass dieses „Psyco“ verrückt bedeutet, dann ist dieses Zeug wieder nichts für Sie.

Sie haben immer noch eine Menge grundlegender Dinge vermieden, oder Sie machen nur Spaß, indem Sie sagen, dass Sie ein erfahrener Programmierer sind. Vertrauen Sie mir, ich werde versuchen, diesen Blog so einfach wie möglich zu gestalten und niemanden zu beleidigen. Aber wenn Sie nicht über die richtigen Grundlagen verfügen, wird es Ihnen nur schwerer fallen, dies zu verstehen.

Lassen Sie den schwierigen Teil beiseite, Sie glauben sogar, dass python-schnelle Dinge viel schwieriger sind als jede andere Programmierung, die absolut falsch ist. Jetzt wissen wir also, was ist, und machen wir uns daran.

Was ist Psyco?

Also, was ist Psyco? Psyco macht Python schnell. Verwirrt? Ja, auch ich war verwirrt, als ich das zum ersten Mal hörte. Python ist schon schnell, warum sollte man dann Psyco verwenden? Deshalb habe ich gesagt. Dieser Blog ist nichts für Anfänger und Anfänger. Wenn Sie lange Zeit in Python Run codiert haben und eine große Anzahl von Codes und allem erstellt haben, wissen Sie, dass Python Fast eine kompakte und strenge Codierung erfordert. Mit der richtigen Art der Codierung können Sie es sowohl schnell als auch kompakt machen.

Aber es braucht Zeit und Zeug. Sie können keine kompakten und fehlerfreien Codes aus heiterem Himmel erstellen. Und hier entsteht Psyco. Psyco ist nur ein schnelles Python-Erweiterungsmodul, das die Ausführung eines Python-Ausführungscodes beschleunigt. Vielleicht sind Sie im Moment verwirrt, wenn ein Modul einen Python-Code schneller laufen lässt? Ja, genau das ist es. Kommen wir zum größeren Bild.

Python und seine wahre Natur

Wenn Sie zuvor in Java oder C codiert haben, denken Sie vielleicht, dass Python extrem schnell ist als die anderen. Aber da liegst du falsch. In Bezug auf die Raw-Leistung ist Python definitiv langsamer als C, Java oder C #. Aber Python ist nicht dafür bekannt, dass es bei der Raw-Performance Geschwindigkeit gibt.

Nur Anfänger oder Anfänger machen Raw Coding. Professionelle Leute machen die richtige Codierung zusammen mit den richtigen Einrückungen *. Wenn Sie einen ordnungsgemäß kompilierten Code vergleichen und die Gesamtspeicherauslastung, die anfängliche Startzeit und die Ladezeit messen, ist der Python-Lauf zu diesem Zeitpunkt extrem schnell.

Außerdem ist Java extrem schnell, wenn Sie versuchen, Codes zum Erstellen eines Servers oder anderer Elemente zu schreiben, und zwar sogar schneller als C. Dies ist möglich, da die Java Virtual Machine möglicherweise Hot-Byte-Code in Maschinencode kompiliert. Dabei kann jede Funktion der CPU voll ausgenutzt werden.

Dies ist in der Regel bei C nicht der Fall, zumindest bis Sie Ihre Laborumgebung verlassen. Nehmen wir an, Sie verteilen ein Dutzend optimierter Builds an Ihre Kunden - das funktioniert einfach nicht.

Kommen wir nun zu unserem Hauptpunkt zurück, wenn die Startzeit ein Problem darstellt (was beispielsweise für eine Serveranwendung kein Problem darstellt). Java ist möglicherweise nicht die beste Alternative. Dies kann auch davon abhängen, wo sich Ihre Hot-Code-Bereiche befinden. Beispiel: Befinden sich diese in den nativen Bibliotheken mit etwas Python-Fast-Code, um sie einfach zusammenzufügen, können Sie mit Python auch eine C-ähnliche Leistung erzielen. Dennoch werden Skriptsprachen - zumindest die meiste Zeit - langsamer sein.

Empfohlene Kurse

  • VB.NET Online-Kurs
  • Online-Zertifizierungsschulung in Data Science
  • Professioneller ISTQB-Kurs
  • Kali Linux Programm

Psyco - Ist genau so, wie es sich anhört

Ja, das hast du richtig gelesen. Kommen wir nun zu unserem Hauptthema zurück. Das definieren die Psyco-Entwickler auf ihrer Webseite:

„Stellen Sie sich Psyco als eine Art Just-in-Time-Compiler (JIT-Compiler) vor, ein bisschen wie die anderen Sprachen, der im Handumdrehen Maschinencode ausgibt, anstatt Ihr Python-Programm Schritt für Schritt zu interpretieren. Der Unterschied zum herkömmlichen Ansatz bei JIT-Compilern besteht darin, dass Psyco mehrere Versionen derselben Blöcke schreibt (ein Block ist ein Teil einer Funktion), die durch Spezialisierung auf bestimmte Arten von Variablen optimiert werden (eine Art kann einen Typ bedeuten), aber es ist allgemeiner). Das Ergebnis ist, dass Ihre unveränderten Python-Programme schneller ausgeführt werden.

2x bis 100x Beschleunigung, normalerweise 4x, mit einem unveränderten Python-Interpreter und unverändertem Quellcode, nur ein dynamisch ladbares C-Erweiterungsmodul. “

Kurz gesagt, um dies in einer einfachen Aussage zu formulieren, bietet Psyco eine Java-ähnliche Leistung. Sie erhalten langsamere Startzeiten und eine höhere Speichernutzung im Austausch für schnellere Algorithmen.

Allerdings sollte man beim Testen von Sprachen wie Java und Python einige Dinge beachten. Der Code in diesen Sprachen kann häufig erheblich beschleunigt werden, indem für die Sprache geeignetere Konstruktionen verwendet werden (z. B. Listenverständnisse in Python fast oder char () und String Builder für bestimmte String-Operationen in Java).

Darüber hinaus kann die Verwendung von Psyco für Python fast die Geschwindigkeit des Programms erheblich steigern. Und dann geht es darum, geeignete Datenstrukturen zu verwenden und die Laufzeitkomplexität Ihres Codes im Auge zu behalten.

Um Python-Psyco zu verstehen, muss man die eval_frame () -Funktion von Python gut verstehen. Python psyco konvertiert die eval_frame-Funktion von python in eine zusammengesetzte Auswerteeinheit, und psyco verwendet dabei viel Speicher. Psyco zu benutzen ist viel einfacher als es zu erklären.

Um psyco einfach zu verwenden, laden Sie das psyco-Modul von sourceforge.net herunter und bewahren Sie diesen Code am Anfang Ihres allerersten Codes auf:

import psyco ; psyco.jit()

from psyco.classes import *

Und dann können Sie den folgenden Befehl verwenden, um das Verhalten von Psyco genauer zu bestimmen:

psyco.bind(somefunc) # or method, class

newname = psyco.proxy(func)

Wenn dieses Zeug zuerst nicht mit Ihnen funktioniert, müssen Sie geduldig sein. Es erfordert Versuch und Irrtum. Sie können nicht direkt erwarten, dass Ihr Programm wie Usain Bolt ausgeführt wird. Ersparen Sie mir das sarkastische unhöfliche Verhalten, aber so funktioniert es.

In Wirklichkeit ändert oder modifiziert Python Psyco Ihren Code nicht, um ihn intelligenter zu machen. Es profiliert kaum Ihren Code, um spezifischer zu sein. Es werden nur minimale Optimierungen vorgenommen, um den Code der Maschine so nahe wie möglich zu bringen.

Obwohl Python Psyco Ihre Programme so schnell wie C macht, gibt es einige Einschränkungen und Nachteile. Im Folgenden sind einige aufgeführt, die ich unten aufgeführt habe:

  1. Psyco ist jetzt veraltet, nicht mehr gepflegt und tot. Ersatz ist PyPy
  2. Psyco hat viele Probleme mit Python 2.7. Aber es funktioniert in v2.5 viel besser und schneller
  3. Psyco funktioniert nicht auf 64-Bit-Computern. Man kann jedoch eine virtuelle Maschine mit i386-Architektur installieren und zum Laufen bringen.
  4. Mac OSX wird standardmäßig mit Python 64-Bit ausgeliefert. Man muss Python x86 aus dem Quellcode neu kompilieren, damit Psyco funktioniert.

Obwohl es so viele Probleme gibt, verwenden die Leute immer noch Psyco anstelle von PyPy. Wenn Sie mich fragen, ist PyPy eine großartige Alternative zu Psyco. Psyco arbeitet wie ein Just-In-Time-Compiler, PyPy verfügt jedoch über einen eigenen Just-In-Time-Compiler. Wo Psyco viel Speicher verbraucht, verbraucht PyPy viel weniger Speicher als Psyco. PyPy ist noch besser mit Frameworks wie Django und Twisted kompatibel.

Nach all dem, egal was ich sage, ist es zu unserem eigenen Gebrauch. Personen mit Psyco-Hintergrund empfehlen immer Psyco, während Personen, die Geschwindigkeit wollen, PyPy benötigen. Aber lassen Sie mich etwas zitieren.

„Auch wenn man sich mit Motorrädern wie R1 oder Hayabusa gut genug fühlt, hat das Fahren einer Harley Davidson manchmal ein eigenes Vergnügen.“

Das funktioniert genauso mit Psyco und PyPy. Am Ende würde ich also ohne viel Aufhebens vorschlagen, beide zu Beginn zu verwenden und dann mit dem fortzufahren, bei dem Sie sich sehr wohl fühlen.

Empfohlene Artikel:

In den folgenden Artikeln erfahren Sie mehr über Python Fast und Python Psyco.

  1. Linux vs Ubuntu-Unterschiede
  2. 25 erstaunlichsten Fragen und Antworten zum Python-Interview
  3. Karriere in Python
  4. Python gegen Node.js
  5. Hilfreiche Anleitung zu Kali Linux vs Ubuntu
  6. Liste der Python-Compiler