phpbar.de logo

Mailinglisten-Archive

[php] Wieviele include und/oder require sind moeglich

[php] Wieviele include und/oder require sind moeglich

Kristian =?iso-8859-1?Q?K=F6hntopp?= kk_(at)_netuse.de
Thu, 02 Dec 1999 13:55:56 +0100


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