Ich experimentiere mit PHP als Templatesprache herum und bin da auf ein Problem gestoßen das ich nicht lösen kann.
Das Beispiel hier macht programmiertechnisch weniger Sinn es geht nur darum das Problem zu beschreiben:
Hier werden ca 5000 Dateien per Include eingebunden, irgnorieren wir mal dass aleine dass schon auf die Performance gehen würde, aber wie läuft das mit den Includedateien?
Ich würde dieses Ausgabesystem gerne in einem Daemon laufen lassen, sprich bei jeder Anfrage würden ein paar Templates includet werden.
Sprich nach 1000 Besuchern habe ich dann ca 10000 mal includiert ohne dass das Script beendet wurde, also irgendetwas entfernt wurde.
Weiß jemand wie PHP das mit dem Speichermanagement und den Includes macht?
Ich hab ja keine neuen Funktionen oder sonstiges in den Templates, nur Ausgaben.
Explodiert mir so irgendwann der Speicher, oder ist es unbedenklich so lange ich nicht tonneweise von Objekten und Klassendefinitionen nachlade.
Hier ein Beispielabschnitt zum befüllen des Templates zum demonstrieren des erwarteten Effektes:
Die Templatedatei
Gruß Sono
Das Beispiel hier macht programmiertechnisch weniger Sinn es geht nur darum das Problem zu beschreiben:
Hier werden ca 5000 Dateien per Include eingebunden, irgnorieren wir mal dass aleine dass schon auf die Performance gehen würde, aber wie läuft das mit den Includedateien?
Ich würde dieses Ausgabesystem gerne in einem Daemon laufen lassen, sprich bei jeder Anfrage würden ein paar Templates includet werden.
Sprich nach 1000 Besuchern habe ich dann ca 10000 mal includiert ohne dass das Script beendet wurde, also irgendetwas entfernt wurde.
Weiß jemand wie PHP das mit dem Speichermanagement und den Includes macht?
Ich hab ja keine neuen Funktionen oder sonstiges in den Templates, nur Ausgaben.
Explodiert mir so irgendwann der Speicher, oder ist es unbedenklich so lange ich nicht tonneweise von Objekten und Klassendefinitionen nachlade.
Hier ein Beispielabschnitt zum befüllen des Templates zum demonstrieren des erwarteten Effektes:
PHP-Code:
<?php
reset($DatabaseResult); // 5000 Einträge
while ( list( $Key , $Val ) = each($DatabaseResult) ):
include "./template/UserRow.tpl";
endwhile;
?>
PHP-Code:
<tr>
<td><?php echo $Val["name"] ?></td>
<td><?php echo $Val["nachname"] ?></td>
<td><?php echo $Val["login"] ?></td>
<td><?php echo $Val["alter"] ?></td>
</tr>

Kommentar