Kleine Performancefrage zu Funktionen

Vertigo21

Erfahrenes Mitglied
Wenn man eine Datei included, wird sie dann permanent im Speicher gehalten, oder wird sie bei jedem Aufruf einer Seite wieder geöffnet?

Ich vermute stark, dass sie nicht im Speicher bleibt, was zu Performance-Einbrüchen bei größeren Projekten führen könnte. Aber wie könnte man es realisieren um diese "Falle" zu umgehen?
 
Bei großen Projekten ist es aufgrund ihrer Komplexität gar nicht zu vermeiden, dass Klassen und Funktionen ausgelagert und die Skripte in mehrere Dateien aufgeteilt werden. Dies hat neben der verbesserten Struktur auch den Vorteil, dass immer nur die benötigten Teile eingebunden werden können.

Dass es einen signifikanten Unterschied gibt, wenn mehrere Skript-Dateien statt einer verarbeitet wird, glaube ich übrigens nicht.
 
Hm, ich bin mir nicht sicher, ob ich mich grade richtig ausgedrückt habe, denn deine Antwort verstehe ich nicht ganz.

Simples Beispiel für mein Verständnis: Ich möchte einen Admin-Bereich mit versch. Unterseiten erstellen, sprich auf jeder Seite des Admin-Bereichs ist es notwendig die Userangaben (z.B. Session-Variablen) zu verifizieren. Die Funktion dazu ist in einer "funktionen.inc.php" ausgelagert.
Wird beim Aufruf einer Unterseite die "funktionen.inc.php" erneut geladen, oder ist die benötigte Funktion zum verifizieren der Daten noch im Speicher abgelegt? (Bei diesem Simpel-Beispiel spielt die Performance zwar keine Rolle, aber es ist ja nur zum Verständnis.)
 
Deine Includedatei muss jedes Mal neu geladen werden. Ist auch verständlich, schließlich muss der Speicher, den der Serverprozess reserviert hat, beim Beenden des Prozesses vom OS wieder freigegeben werden.

Trotzdem ist es sehr wahrscheinlich, dass deine Includedatei nicht von der Platte geladen wird, da sie sich sicherlich im Cache befindet. Dies ist nur dann nicht der Fall, wenn dein Server andauernd sehr viele verschiedene Dateien ausliefern muss, so dass das Caching nicht funktioniert.

-Gawayn
 
Zurück