Kompilieren von PHP- zu Op-Code und Ausführen des Opcodes

8

PHP wird normalerweise kompiliert, um von der Zend-Engine während der Ausführungszeit zu opcodieren.

Um das Kompilieren jedes Mal zu überspringen, kann man einen Opcode-Cache wie APC verwenden, um den Opcode im Shared Memory zu speichern und wiederzuverwenden.

Okay, jetzt scheint es, dass es noch no -Lösung gibt, um PHP einfach zu kompilieren, um es zu opcodieren und zu benutzen. Ähnlich wie Sie Java verwenden.

Aber warum? Ich frage mich, ob das eine ganz offensichtliche Idee ist, also denke ich, dass es einen Grund dafür gibt.

BEARBEITEN :

Die Kernfrage ist dies:

würde die PHP-Kompilierung nicht zu einem Opcode-Caching machen?

Der einzige "Grund" dagegen wäre, dass Sie nicht einfach etwas auf dem Live-System reparieren könnten ... was sowieso eine schlechte schlechte Übung ist.

    
Raffael 19.08.2011, 08:23
quelle

1 Antwort

2

Sie haben einen Grund dafür angegeben.

Ein weiterer sehr wichtiger Punkt ist, dass Sie, wenn Sie die Kompilierung und die Laufzeit sowohl hinsichtlich des Zeitpunkts der Ausführung als auch hinsichtlich der Hardware trennen, schnell auf komplexe Abhängigkeitsprobleme stoßen - was passiert, wenn Sie Versuchen Sie, den von PHP 5.1 generierten Opcode auf einer PHP 5.3 Runtime auszuführen?

Es macht auch das Debuggen von Code schwieriger - da der Debugger den Opcode zurück auf den Quellcode abbilden muss.

Aber eine sehr wichtige Frage, die Sie nicht gefragt haben, geschweige denn beantwortet haben, ist der Vorteil der Vorgenerierung des Opcodes?

Würde das Kompilieren des Opcodes vor der Laufzeit einen wesentlichen Vorteil gegenüber dem Zwischenspeichern des Opcodes haben? Der Unterschied wäre unmessbar klein.

Sicher ist die Daseinsberechtigung für HipHop das nativ kompilierte PHP Code läuft schneller als PHP mit Opcode Caching auf Kosten einiger Funktionen. Aber das ist etwas ganz anderes.

Glauben Sie, dass nur die Opcodes auf dem Server die Sicherheit verbessern (durch Dunkelheit)?

    
symcbean 19.08.2011, 09:54
quelle

Tags und Links