Mailinglisten-Archive |
Egon Schmid wrote:
> Bei meiner Firma arbeiten mehrere Entwickler und da soll eine schon
> vorhandene Funktionssammlung erweitert werden. Pro Funktion oder Klasse
> eine Datei. Bei grossen komplexen Projekten sind dabei dementsprechend
> viele includes oder requires zu machen. Das hat dann zu der Frage
> geführt: Gibt es eine Obergrenze, wenn ja wie hoch darf die Zahl der
> Dateien maximal sein.
PHP begrenzt die Anzahl dieser Dateien nicht.
Ich habe hier eine Sun Ultra-1/143 Mhz mit Solaris 7 und ich habe
dort einmal folgendes Experiment gemacht: Ich habe 100 Include-Dateien
i1.inc bis i100.inc erzeugt und diese dann mittels
kk_(at)_wwwx /home/www/servers/kris.dev.netuse.de/pages/include $ cat timer.php3
<?php
$sta = microtime();
for ($i=0; $i<$limit; $i++) {
include("./i$i.inc");
}
$sto = microtime();
$start = split(" ", $sta);
$stop = split(" ", $sto);
$used = ($stop[1]-$start[1]) + ($stop[0]-$start[0]);
printf("%12.4f", $used);
?>
eingebunden. Dabei habe ich bewußt nicht immer wieder dieselbe Datei
eingebunden, um Cacheffekte auszuschließen. Eine Datei ix.inc enthält
dabei 1000 Zuweisungen der Form
kk_(at)_wwwx /home/www/servers/kris.dev.netuse.de/pages/include $ head -3 i1.inc
<?php
$a[000] = 000;
$a[001] = 001;
kk_(at)_wwwx /home/www/servers/kris.dev.netuse.de/pages/include $ tail -3 !$
tail -3 i1.inc
$a[998] = 998;
$a[999] = 999;
?>
Außerdem habe ich "cat i*inc > master.inc" erzeugt. Die Dateien sind
kk_(at)_wwwx /home/www/servers/kris.dev.netuse.de/pages/include $ l master.inc i1.inc
-rw-r--r-- 1 kk members 15009 Dec 2 13:32 i1.inc
-rw-r--r-- 1 kk members 1500900 Dec 2 13:33 master.inc
groß. "timer.php3?limit=100" erzeugt eine Ausgabe von
8.6309
und "timer2.php3", das stattdessen "master.inc" einbindet und
sonst nichts, erzeugt eine Ausgabe von
7.6429
Das Einbinden von 100 verschiedenen Include-Dateien auf meiner
Maschine verbraucht also etwa eine Sekunde pro aufgerufenes Script.
Kristian
--
Kristian Köhntopp, NetUSE Kommunikationstechnologie GmbH
Siemenswall, D-24107 Kiel, Germany, +49 431 386 436 00
Using PHP3? See our web development library at
http://phplib.netuse.de/ (We have moved! Update your bookmarks!)
php::bar PHP Wiki - Listenarchive