phpbar.de logo

Mailinglisten-Archive

[php] wie performanter gestalten

[php] wie performanter gestalten

Norbert Pfeiffer norbert at itbw.de
Mon Jul 31 18:06:04 CEST 2006


Hallo,

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:
<?php
$OUT = array();
$x = 0;
while(!feof($f0)) {
    $agent = trim(fgets($f0, 333));
    $UA = get_browser($agent);
    $BR = get_object_vars($UA);
    $browser = $BR['browser'];
    $n = (isset($OUT[$browser])) ? ($OUT[$browser] + 1) : 1;
    $OUT[$browser] = $n;
    $x++;
    echo ($x % 99 == 0) ? sprintf('% 11s', number_format($x,0,',','.')).
         sprintf('% 7s', number_format(count($OUT),0,',','.'))."\n" : '';
}
?>
Leider braucht PHP dazu rund 2 sec pro Umlauf was auf eine
Gesamtverarbeitungszeit von rund 15,5 Stunden schliessen laesst.

Wie bekommt man das auf ca. 1 Stunde runter ... ?


m. b. G.  N. Pfeiffer
---------------------
normal: 06131-1436094
Notruf:  0163-3613642
---------------------
e.o.f.

php::bar PHP Wiki   -   Listenarchive