Warum ist Python langsam?
Python ist eine dynamisch typisierte, interpretierte Sprache. Es ist allgemein bekannt, dass Python aufgrund seiner langsamen Ausführung langsam ist Ich möchte Ihnen einige Gründe nennen, warum Python langsam ist.
Python ist eine dynamische Sprache, keine statische Sprache
Das bedeutet, dass, wenn das Python-Programm ausgeführt wird, Kompilierung Der Compiler kennt den Typ der Variablen nicht. In C kennt der Compiler den Typ einer Variablen, wenn sie definiert wird, aber in Python weiß er erst, dass es sich um ein Objekt handelt, wenn er ausgeführt wird.
Wenn Sie also Folgendes in C schreiben:
/ * C代码* / int a = 1 ; int b = 2 ; int c = a + b ;
Der C-Compiler weiß von Anfang an, dass a und b ganze Zahlen sind: Sie können einfach nichts anderes sein! Mit diesem Wissen kann es eine Routine aufrufen, die zwei Ganzzahlen addiert und eine weitere Ganzzahl zurückgibt, die nur ein einfacher Wert im Speicher ist.
Der in C ausgeführte Prozess ist ungefähr wie folgt:
1 Zuweisen von
3. Rufen Sie die binäre Addition „binary_add(a, b)
4 mittel Der effektive Code lautet wie folgt:
# python code a = 1 b = 2 c = a + b
Hier weiß der Interpreter nur, dass 1 und 2 Objekte sind, weiß aber nicht, um welche Art von Objekten es sich handelt. Daher muss der Interpreter den PyObject_HEAD jeder Variablen überprüfen, um die Typinformationen zu finden, und dann die entsprechende Summierungsroutine für beide Typen aufrufen. Schließlich muss ein neues Python-Objekt erstellt und initialisiert werden, um den Rückgabewert zu speichern.
Der Ausführungsprozess ist ungefähr wie folgt:
1 Weisen Sie 1 einem
zu (1) Legen Sie a->PyObject_HEAD->typecode fest Ganzzahl
(2) Setze Seta->val = 1
2, weise 2 zu b
(1) Setze b->PyObject_HEAD->typecode auf Ganzzahl
(2) Setze b->val = 2
3. Rufe die binäre Addition „binary_add(a, b)“ auf.
(1) Finde den Typcode a- >PyObject_HEAD
(2) a ist eine Ganzzahl, der Wert ist a->val
(3) Finden Sie den Typcode b->PyObject_HEAD
( 4) b ist eine Ganzzahl, der Wert ist b->val
(5) Rufen Sie die binäre Addition Binary_add(a->val, b->val)
auf (6) Das Ergebnis ist result, eine Ganzzahl.
4. Erstellen Sie ein neues Objekt c
(1) Setzen Sie c->PyObject_HEAD->typecode auf Ganzzahl
(2) Ändern Sie die c->val-Zuweisung Ein dynamischer Typ für das Ergebnis
bedeutet, dass jede Operation mehr Schritte erfordert. Dies ist der Hauptgrund, warum Python bei numerischen Datenoperationen langsamer als C ist.
Python ist eher eine interpretierte Sprache als eine kompilierte SpracheDie Unterschiede zwischen interpretierten Sprachen und kompilierten Sprachen führen auch zu Unterschieden in der Geschwindigkeit der Programmausführung . . Ein intelligenter Compiler kann sich wiederholende und unnötige Vorgänge vorhersagen und optimieren. Dadurch wird auch die Geschwindigkeit der Programmausführung erhöht.
Pythons Objektmodell führt zu ineffizientem SpeicherzugriffIm obigen Beispiel führt die Verarbeitung von Ganzzahlen in Python im Vergleich zur C-Sprache zu einer zusätzlichen Ebene von Typinformationen . Wenn viele Ganzzahlen vorhanden sind und Sie eine Art Stapeloperation ausführen möchten, wird in Python häufig eine Liste und in C ein pufferbasiertes Array verwendet. In seiner einfachsten Form ist ein Numpy-Array ein Python-Objekt, das um ein Array in C herum aufgebaut ist. Das heißt, Numpy hat einen Zeiger, der auf den Wert der kontinuierlichen Cache-Bereichsdaten zeigt, während in Python die Python-Liste einen Zeiger hat, der nur den Bereich zwischenspeichern möchte. Jeder Zeiger zeigt auf ein Python-Cache-Objekt und jedes Objekt ist an ein Datum gebunden (in diesem Fall eine Ganzzahl). Schematische Diagramme dieser beiden Situationen:
Aus der obigen Abbildung geht hervor, dass bei der Bearbeitung von Daten (z. B. Sortieren, Berechnen, Suchen usw.) .), Numpy ist in Bezug auf Überlebenskosten und Zugriffskosten effizienter als Python.Das obige ist der detaillierte Inhalt vonWarum ist Python langsam?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



PHP und Python haben ihre eigenen Vor- und Nachteile, und die Wahl hängt von den Projektbedürfnissen und persönlichen Vorlieben ab. 1.PHP eignet sich für eine schnelle Entwicklung und Wartung großer Webanwendungen. 2. Python dominiert das Gebiet der Datenwissenschaft und des maschinellen Lernens.

Python und JavaScript haben ihre eigenen Vor- und Nachteile in Bezug auf Gemeinschaft, Bibliotheken und Ressourcen. 1) Die Python-Community ist freundlich und für Anfänger geeignet, aber die Front-End-Entwicklungsressourcen sind nicht so reich wie JavaScript. 2) Python ist leistungsstark in Bibliotheken für Datenwissenschaft und maschinelles Lernen, während JavaScript in Bibliotheken und Front-End-Entwicklungsbibliotheken und Frameworks besser ist. 3) Beide haben reichhaltige Lernressourcen, aber Python eignet sich zum Beginn der offiziellen Dokumente, während JavaScript mit Mdnwebdocs besser ist. Die Wahl sollte auf Projektbedürfnissen und persönlichen Interessen beruhen.

Docker verwendet Linux -Kernel -Funktionen, um eine effiziente und isolierte Anwendungsumgebung zu bieten. Sein Arbeitsprinzip lautet wie folgt: 1. Der Spiegel wird als schreibgeschützte Vorlage verwendet, die alles enthält, was Sie für die Ausführung der Anwendung benötigen. 2. Das Union File System (UnionFS) stapelt mehrere Dateisysteme, speichert nur die Unterschiede, speichert Platz und beschleunigt. 3. Der Daemon verwaltet die Spiegel und Container, und der Kunde verwendet sie für die Interaktion. 4. Namespaces und CGroups implementieren Container -Isolation und Ressourcenbeschränkungen; 5. Mehrere Netzwerkmodi unterstützen die Containerverbindung. Nur wenn Sie diese Kernkonzepte verstehen, können Sie Docker besser nutzen.

VS -Code kann zum Schreiben von Python verwendet werden und bietet viele Funktionen, die es zu einem idealen Werkzeug für die Entwicklung von Python -Anwendungen machen. Sie ermöglichen es Benutzern: Installation von Python -Erweiterungen, um Funktionen wie Code -Abschluss, Syntax -Hervorhebung und Debugging zu erhalten. Verwenden Sie den Debugger, um Code Schritt für Schritt zu verfolgen, Fehler zu finden und zu beheben. Integrieren Sie Git für die Versionskontrolle. Verwenden Sie Tools für die Codeformatierung, um die Codekonsistenz aufrechtzuerhalten. Verwenden Sie das Lining -Tool, um potenzielle Probleme im Voraus zu erkennen.

Im VS -Code können Sie das Programm im Terminal in den folgenden Schritten ausführen: Erstellen Sie den Code und öffnen Sie das integrierte Terminal, um sicherzustellen, dass das Codeverzeichnis mit dem Terminal Working -Verzeichnis übereinstimmt. Wählen Sie den Befehl aus, den Befehl ausführen, gemäß der Programmiersprache (z. B. Pythons Python your_file_name.py), um zu überprüfen, ob er erfolgreich ausgeführt wird, und Fehler auflösen. Verwenden Sie den Debugger, um die Debugging -Effizienz zu verbessern.

VS -Code -Erweiterungen stellen böswillige Risiken dar, wie das Verstecken von böswilligem Code, das Ausbeutetieren von Schwachstellen und das Masturbieren als legitime Erweiterungen. Zu den Methoden zur Identifizierung böswilliger Erweiterungen gehören: Überprüfung von Verlegern, Lesen von Kommentaren, Überprüfung von Code und Installation mit Vorsicht. Zu den Sicherheitsmaßnahmen gehören auch: Sicherheitsbewusstsein, gute Gewohnheiten, regelmäßige Updates und Antivirensoftware.

Python zeichnet sich in Automatisierung, Skript und Aufgabenverwaltung aus. 1) Automatisierung: Die Sicherungssicherung wird durch Standardbibliotheken wie OS und Shutil realisiert. 2) Skriptschreiben: Verwenden Sie die PSUTIL -Bibliothek, um die Systemressourcen zu überwachen. 3) Aufgabenverwaltung: Verwenden Sie die Zeitplanbibliothek, um Aufgaben zu planen. Die Benutzerfreundlichkeit von Python und die Unterstützung der reichhaltigen Bibliothek machen es zum bevorzugten Werkzeug in diesen Bereichen.

VS -Code kann unter Windows 8 ausgeführt werden, aber die Erfahrung ist möglicherweise nicht großartig. Stellen Sie zunächst sicher, dass das System auf den neuesten Patch aktualisiert wurde, und laden Sie dann das VS -Code -Installationspaket herunter, das der Systemarchitektur entspricht und sie wie aufgefordert installiert. Beachten Sie nach der Installation, dass einige Erweiterungen möglicherweise mit Windows 8 nicht kompatibel sind und nach alternativen Erweiterungen suchen oder neuere Windows -Systeme in einer virtuellen Maschine verwenden müssen. Installieren Sie die erforderlichen Erweiterungen, um zu überprüfen, ob sie ordnungsgemäß funktionieren. Obwohl VS -Code unter Windows 8 möglich ist, wird empfohlen, auf ein neueres Windows -System zu upgraden, um eine bessere Entwicklungserfahrung und Sicherheit zu erzielen.
