Hi,
PHP muß komplett vom Interpreter übersetzt werden, dazu kommt noch, das der Interpreter für jedes Script neu geladen werden muß
das ist mir neu. Der Interpreter ist entweder vorhanden oder nicht vorhanden.
das Programm namens "PHP-Interpreter" ist vorhanden, ja. Allerdings kostet dieser Programmstartgenau wie jeder andere Zeit - und bei Verwendung des CG-Interfaces ist es üblich, das das aufgerufene Programm (PHP-Script) just in time gestartet wird, was genau wie an der Shell zu einem Start des zugehörigen Interpreters führt. In der Modul-Variante von PHP läuft es, wie auch bei z.B. mod_perl, anders; da gehört eine Instanz des Interpreters "zum Server" und wird daher zu jedem geforkten Serverchild distributiert. Sprich: Jeder Worker hat einen Interpreter gestartet und nutzt dien solange, bis der Worker stirbt.
PERL glaube ich dasselbe, nur das da noch ggfs. zig Module geladen werden, also bei Verwendung von komplexen Modulen wie CGI wird das noch erheblich langsamer als PHP...
ich würde gerne widersprechen, weiß aber auch nicht genau, warum ...
Weil's nicht stimmt ;-) Ja, Module werden geladen, kompiliert etc., aber das Laden geht erstens durch den dem Filesystem eigenen Cache quasi in Nullzeit (zumindest nach dem ersten Mal), und zweitens existiert hier zwischen Perl und anderen Sprachen ähnlicher Mächtigkeit - inklusive PHP - kein nennenswerter Unterschied. Die Präkompilierung des Perl-Scripts wurde ja schon erwähnt.
Python (mit ohne "h" hinter dem "P") ist, wenn ich das richtig verstanden habe, ebenfalls eine "interpretierte" Sprache.
Korrekt. Sie ist vergleichbar mit Perl und PHP, inklusive aller Vor- und Nachteile. Auch hier lässt sich der Interpreter bereits über ein Modul in den Server einbinden; wobei ich nicht verbrieft sagen kann, ob ein soclhes auch auf dem freien Markt verfügbar ist, oder ob man sich so ein Modul doch selbst bauen muss :-)
Das Entscheidende ist nach meinem Kenntnisstand, wieviel "Datenmaterial" diese Sprachen der CGI-Schnittstelle übergeben.
Nicht wirklich. Das Teuerste ist bei Netzkommunikation eh immer der Roundtrip, also ohne Betrachtigung der Datenmasse die Kommunikation an sich; und gewöhnlich besteht ein Script nicht nur aus "Eingabe, Verarbeitung, Ausgabe", sondern beruft sich währenddessen auf andere Systeme (und sei es nur das Filesystem), welche sich oft als Bremse ausgezeichnet bewähren. Die Frage "Wie schnell ist die Sprache?" ist erst dann relevant, wenn man die Ausführung mitlesen könnte.
Auf dem Server sind sie alle ungefähr gleich schnell - ungefähr.
Jau. Wobei ich nur nebenbei bemerken möchte, dass der Server nur ein Programm ist, Du aber eher den Rechner meinst, auf dem _auch_ der Server läuft.
Aber sie produzieren Ausgabestrings, die sich in der Größe erheblich unterscheiden können, und das ist wahrscheinlich das Entscheidende
Nö. Ob nun ein Kilobyte zurückkommt oder hundert, das ist ein vergleichsweise marginaler Unterschied. Klar, der Empfang der Daten dauert länger, aber deswegen war das Programm nicht entsprächend lange beschäftigt.
Cheatah
X-Will-Answer-Email: No