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