Seite 1 von 1
Script "kompilieren"
Verfasst: Mittwoch 18. November 2009, 14:37
von Krauzi
Hallo,
ich wollte mal wissen, ob ein kompilierter python script schneller ausgeführt wird wie ein nicht kompilierter.
Falls das nicht der Fall ist, was bringt dann eigentlich kompilieren bei python scripts (außer dem schutz des quellcodes)?
MfG Krauzi
Re: Script "kompilieren"
Verfasst: Mittwoch 18. November 2009, 14:44
von cofi
Python wird per byte-code interpretiert in den jedes Programm kompiliert werden muss. Der Vorteil von `.pyc` Dateien ist, dass das Programm nicht neu kompiliert werden muss.
Krauzi hat geschrieben:(außer dem schutz des quellcodes)?
Nein, das erledigt kein Kompilat, schon gar kein byte-code Kompilat.
Re: Script "kompilieren"
Verfasst: Mittwoch 18. November 2009, 15:12
von Leonidas
Krauzi hat geschrieben:ich wollte mal wissen, ob ein kompilierter python script schneller ausgeführt wird wie ein nicht kompilierter.
Ja, deswegen wird Python-Code zu Python-Bytecode kompiliert, der von der Python-VM dann ausgeführt wird.
Verfasst: Donnerstag 19. November 2009, 08:59
von sma
Ich würde die Frage ja mit Nein beantworten. Python(.exe) kann überhaupt nur kompilierten Quelltext interpretieren, weil es ein Bytecode-Interpreter ist. Technisch ist das Umwandeln von Quelltext in Bytecode zwar eine Kompilation, nicht aber in dem Sinn in dem der OP das wahrscheinlich meinte, also in der Art dass man Geschwindigkeitsvorteile durch einen (optionalen) Kompilationsschritt erreicht.
Jython übersetzt z.B. Python-Quelltext in Java-Bytecode, der dann von der Java-VM bei der Ausführung in Maschinensprache übersetzt wird. Das Google-Projekt "Unloaden Swallow" hat den Python-Interpreter zu gehackt, dass er Bytdecode für die LLVM erzeugt, der dann von dieser bei der Ausführung in Maschinensprache übersetzt wird. Wirklich schneller ist das aber beides nicht.
Stefan