Page 1 of 1

php-Skript optimieren

Posted: 2003-11-20 12:30
by sirmark
Hallo!

Bastel mal wieder an einem Skript, das relativ groß wird und auch sehr häufig durch User aufgerufen wird. Jetzt möchte ich dieses Skript optimieren, damit das Ganze in Bezug auf Laufzeit und Serverbelastung ein erträgliches Mass reduziert wird.
Folgender Gedanke: Ich entferne aus allen Funktionen, die nicht immer aufgerufen werden, den Funktionsinhalt und rufe den via include auf, wenn die Funktion ausgeführt wird. Habe aber die Befürchtung, dass PHP beim Start des Skriptes ALLE includes ausführt, auch wenn die Funktion NICHT ausgeführt wird. Hat da jemand Erfahrung?
Gruß

Re: php-Skript optimieren

Posted: 2003-11-20 12:32
by arty
Hi,

PHP ruft alle includes auf. Funktionen, die nicht genutzt werden, werden dabei nicht beachtet.

bye
arty

Re: php-Skript optimieren

Posted: 2003-11-20 12:38
by sirmark
Hab´s befürchtet ... :(
Dann dürfte es keine Möglichkeit geben, nur selten genutzten Code auszulagern ...

Re: php-Skript optimieren

Posted: 2003-11-20 12:43
by relativity
hmm
php ruft alle includes auf?

was passiert denn wenn dort ein command drinne
steht in dem ein SQL Connect hergestellt wird?

wird der in dem moment wo der include gemacht
wird umgesetzt oder wird der include nur in den
source eingefügt?

Re: php-Skript optimieren

Posted: 2003-11-20 12:55
by cye
das stimmt nicht ganz !
php inkludiert include befehle zur laufzeit !

mann kann das auch ganz leicht testen:

Code: Select all

<?
while(1) {
  include("test.php");
  sleep(1);
}
?>
Dieses skript führt jede sekunde die test.php
aus. Ich kann diese nun während der laufzeit ändern
und das geänderte wird ausgeführt .. !



zur ursprünglichen frage:
inkludierte methoden brauchen erst performance wenn sie
aufgerufen werden, du kannst also ohne probleme am anfang
alles inkludiern ...

Re: php-Skript optimieren

Posted: 2003-11-20 14:49
by sirmark
@Cye: Es war meinerseits nicht an die Performance bzgl. ausführen des Skriptes gedacht, sondern das (ständige) Laden des Skriptes von der Platte. Wobei das wohl sicherlich in einem Cache stehen dürfte ...
Aber interesannter Test ... und ich habe mich schon auf die Logfiles gestürzt ... :?

@Relativity: AUSGEFÃ?HRT wird es erst, wenn die Codezeile auch durchlaufen wird. Da spielt es keine Geige, ob es im Body des Skriptes oder per include zugeladen wird.