| | | | |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| da schreibt der ElePHPant Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() | PHP funktioniert ja so dass dein PHP Skript genommen wird in Maschinensprache umgewandelt wird und dann ausgeführt wird. Dies passiert bei jedem Aufruf eines PHP Skriptes. Und die Zend Engine macht genau dies. Und da gibt es jetzt Programme die wandeln eben den PHP Skript in Maschinensprache um und belassen diesen Teil im Cache. Wenn nun das PHP Skript öfters aufgerufen wird muss es nicht jedes mal in Maschinensprache umgewandelt werden. Ergo es ist ein Performancevorteil. Bringt bei unserem Projekt einen enormen Performanceschub! Wir verwenden den eAccelerator. |
| |
| | |
| Erfahrener Benutzer Registriert seit: 15.08.2004
Beiträge: 2.473
![]() | Nunja, zwei bemühte Antworten mit richtigen Ansätzen und doch voller Fehlinformationen. Ein paar Anmerkungen vorweg: Die letzte PHP-Version, die ein echter Interpreter war, war PHP 3. Seit PHP 4 verfolgt man ein Interpiler-Prinzip. Kann man auch Compreter nennen. Was passiert ist folgendes: Der PHP-Code wird geparst zu zu Bytecode kompiliert. Wenn Zeit und der Zend-Optimizer vorhanden sind, wird der Bytecode auch optimiert, aber das ist nur ein Schritt von umoptimiertem Bytecode zu optimiertem Bytecode. Was mit dem Bytecode passiert, ist dass die VM (Virtuelle Maschine) ihn ausführt. Die VM besteht natürlich aus Maschinencode und kann deswegen auf der realen Maschine laufen. Und das einzige, was zu Maschinensprache kompiliert wird, ist das was in C/C++ geschrieben ist, also die Zend Engine und die PHP-Extensions. Bytecode ist keine optimierte Form von irgendetwas, sondern sowas ähnliches wie Maschienensprache, nur eben für eine virtuelle Maschine. Zur Frage selbst: Wenn man auf php.net geht und PHP runterläd, besteht der Quellcode (abzüglich Beiwerk wie build-system und PEAR) aus zwei Teilen: - den PHP-Extensions, die die PHP-Funktionen zur Verfügung stellen (also das, was im Manual in der function reference steht: http://de3.php.net/manual/en/funcref.php) - der Zend Engine, die die Sprache an sich implementiert, also Parsen, Kompilieren zu Bytecode, ausführen des Bytecodes, dadrin sind Kontrollstrukturen, das Objektmodell, die Speicherverwaltung... Die Aufgaben aufzulisten ist schwierig, im Prinzip halt alles ausser den Funktionen. |
| |
| | |||
| Erfahrener Benutzer Registriert seit: 15.08.2004
Beiträge: 2.473
![]() | Zitat:
Das Wort "optimieren" hat in diesem Zusammenhang nichts verloren, es handelt sich um eine Übersetzung von einer Sprache in eine andere, nicht mehr und nicht weniger. Die Optimierungen finden innerhalb einer Sprache statt, also in diesem Fall innerhalb des Bytecodes. Zitat:
Ein Auto fährt ja auch und ist trotzdem kein Fahrer.
__________________ mod = master of disaster | ||
| |
| | ||
| Benutzer Registriert seit: 27.04.2004
Beiträge: 50
![]() | Zitat:
| |
| |
| | ||
| Benutzer Registriert seit: 27.04.2004
Beiträge: 50
![]() | Zitat:
-PHP stellt nur die Funktionsbibliotheken zur Vefügung. -Die Ausführung von PHP-Skripts wird alleine durch die Zend-Engine erledigt. Ist das so richtig? Vielen Dank für die Bemühungen | |
| |
| | |
| Erfahrener Benutzer Registriert seit: 15.08.2004
Beiträge: 2.473
![]() | Fast. Die Ausführung (incl. Parsen etc.) wird von der Zend-Engine gemacht. Die Funktionsbibliotheken sind hingegen modular und erweiterbar, also jeder kann seine eigenen Funktionen schreiben und bei sich einbinden, oder anderen zum einkompilieren geben. Das sind die sog. PHP-Extensions. Findet man im PHP-Quellcode im Verzeichnis ext/ (schau mal rein). In ext/standard/ findet man die "Kern"-Funktionen wie array-Kram, md5() usw.
__________________ mod = master of disaster |
| |
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Zend Studio und Projekte | breaker | PHP-Fortgeschrittene | 0 | 26.05.2008 13:51 |
| Google calendar API - ZEND? | cyberholic | PHP-Fortgeschrittene | 5 | 17.04.2008 15:28 |
| Zend Translate | R4v3r | PHP-Fortgeschrittene | 6 | 04.04.2008 19:58 |
| Zend Framework | Melchior | PHP-Fortgeschrittene | 29 | 13.03.2008 21:12 |
| Zend Optimizer - Zerstörte datei | brian johnson | Off-Topic Diskussionen | 3 | 28.11.2007 15:07 |
| Template Engine vs PHP-Includes | aktionkuba | PHP Tipps 2007 | 16 | 19.06.2007 23:53 |
| Was mime_content_type übergeben | dethlef14 | PHP Tipps 2006 | 16 | 11.10.2006 17:35 |
| Eclipse & Zend Debugger? | freq.9 | PHP Tipps 2006 | 5 | 11.10.2006 00:11 |
| ZEND guard geschütztes script | imported_dex | PHP Tipps 2006 | 7 | 04.08.2006 00:58 |
| [Erledigt] Zend Optimizer auf SUSE 9.3 server installieren | Server, Hosting und Workstations | 35 | 14.02.2006 16:55 | |
| [Erledigt] Zend Optimizer-2.5.5 unter SuSe Linux 9.0 | Off-Topic Diskussionen | 3 | 23.01.2005 09:34 | |
| [Erledigt] eAccelerator und/oder Zend Optimizer | Server, Hosting und Workstations | 2 | 12.01.2005 14:36 | |
| Alternativen zu Zend SafeGuard (Zend Optimizer) | PHP Tipps 2004-2 | 2 | 15.11.2004 14:07 | |
| Mehrere Dateien gleichzeitig Download (OWL Intranet Engine) | PHP Tipps 2004 | 0 | 07.10.2004 15:16 | |
| [Erledigt] Zend Studio and PEAR | PHP-Fortgeschrittene | 1 | 10.08.2004 14:36 | |
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| zend engine, interpiler wiki, interpiler wikipedia, zend engine c, zend debugger suse linux, php bytecode ausführen, maschinensprache php, bytecode mit php ausführen, zend engine wiki, php maschinensprache, maschinensprache von php?, umlaute google kalender php zend, vsphp,zendengine, zend debugger suse, was ist zendengine, zend vm bytecode, zend gdata calendar umlaute, php interpiler, php interpiler wiki, bytecode ausführen -java |

Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.