Philipp Hasenfratz: Performance von include/require in Perl/PHP

Beitrag lesen

Halihallo Forumer

Ich versuche noch eine andere argumentative Basis zu geben:

ein require/include in PHP führt etwa folgendes aus:
 1) laden des inkludierten PHP-Script
 2) "kompilieren"/analysieren des PHP-Scripts
 3) ausführen des Codes

  1. und 3) wären auch bei direktem Aufruf nötig, genauso das Starten des PHP-Interpreters.
  2. ist der einzige Mehraufwand, den PHP machen müsste. Dieser Mehraufwand besteht aus
    dem Laden der Datei und dem Einlesen, da dies sehr schnell geschieht, ist der Verlust
    an Performance verhältnismässig (es sei denn, das andere Script besteht lediglich aus
    einem echo-Befehl oder so) klein, das sagte ich bereits.

Nun aber:
a) include/require (wie bei Perl) geschieht zur Laufzeit des Scriptes. Der inkludierte
   Code muss zuerst geparsed, dann kompiliert und nachfolgend ausgeführt werden. Da das
   Kompilat in den "Namespace" des aktuellen PHP-Codes eingefügt werden muss, könnte ich
   mir schon vorstellen, dass es noch etwas mehr Zeit braucht, als wenn der Code bereits
   zur Compile-Time verarbeitet wird.

b) als Modul für Apache bin ich mir nicht sicher, ob auch inkludierte Codebestandteile
   als Bytecode zugänglich gemacht werden, da dieser Code bei der Compile-Time noch gar
   nicht bekannt war.

Sinngemäss gilt das evtl. auch für Perl.

Viele Grüsse

Philipp

--
RTFM! - Foren steigern das Aufkommen von Redundanz im Internet, danke für das lesen der Manuals.
Selbstbedienung! - Das SelfForum ist ein Gratis-Restaurant mit Selbstbedienung, Menüangebot steht in den </faq/> und dem </archiv/>.