phpbar.de logo

Mailinglisten-Archive

[php] wie performanter gestalten

[php] wie performanter gestalten

Niels Jäckel niels.jaeckel at silice.de
Mon Jul 31 18:53:59 CEST 2006


Hallo Norbert,

> eine Textdatei mit 11 Mio Zeilen wird geoeffnet und zeilenweise  
> eingelesen.
> Dabei wird eine Schleife verwendet, die jeweils 99 Zeilen einliest, fuer
> jede Zeile get_browser aufruft und das Ergebnis in ein Array schreibt:
>[...]
>Leider braucht PHP dazu rund 2 sec pro Umlauf was auf eine
> Gesamtverarbeitungszeit von rund 15,5 Stunden schliessen laesst.

falls du das wirklich mit PHP direkt machen willst (und keine DB verwenden  
möchtest) würde ich folgendermaßen vorgehen (ich nehme Kraft meiner  
Wassersuppe an, dass es sich um irgendwelche Logfiles handelt...):

1. Die eine große Datei clustern (z.b. für jeden Tag eine Datei, oder jede  
Woche, ...)
2. Die Einzeldateien auswerten und Teilergebnisse irgendwo speichern  
(file, DB, ...)
3. Einzelergebnisse zusammenrechnen

Das hätte den Vorteil, dass wenn du in einem Jahr mal wieder eine Analyse  
brauchst, du nicht ALLES neu berechnen musst, sondern nur die Dateien, für  
die noch kein Zwischenergebnis vorliegt.


Grüße,
Niels

php::bar PHP Wiki   -   Listenarchive