phpbar.de logo

Mailinglisten-Archive

[php] Quizzfrage

[php] Quizzfrage

Niels Jäckel niels.jaeckel at silice.de
Mon Mai 15 20:09:43 CEST 2006


Hallo Norbert,

> es geht immer noch um die Logfiles.
> Teste gerade zwei Methoden zum Einlesen:
> 
> a - per include($file);
>     Zeilenformat:
>     "<? $A = array('a'=>'valA','b'=>'valB',...,'z'=>'valZ'); ?>"
> 
> a - via $IN = file($file);
>     foreach($IN as $line) { eval($line); }
>     Zeilenformat:
>     "$A = array('a'=>'valA','b'=>'valB',...,'z'=>'valZ');"
>     
> 1. welche Methode ist schneller ?
> 2. wie gross ist der Unterschied ?
> 3. und warum ...

aus dem Bauch heraus würde ich sagen, dass eval() sehr langsam ist, da 
dort stets dynamischer Code ausgewertet wird (theoretisch).

Du kannst beim Include sicher richtig Zeit schinden, wenn du das auf 
mehrere Logfiles (gleicher Größe...) verteilst. Da dürfte beim Includen 
ein installierter PHP-Cache sicher etliche Geschwindigkeitsvorteile 
bringen ;-)


Grüße,
Niels

P.S.: vielleicht solltest du mal die Zeit der "konventionellen" Logfiles 
(mit Tabs o.ä. getrennt) und deren Auswertung testen. Denn dort fällt ja 
nur der Overhead an, den du mit PHP programmierst. Bei einem include() / 
eval() wird immer die ganze PHP-Maschinerie in Gang gesetzt 
(Syntaxchecker, Parser, Laufzeitumgebung, ...)

php::bar PHP Wiki   -   Listenarchive