Auge: hilfe! php wird immer langsamer

Beitrag lesen

Hallo

Was aber zumindest seit PHP 4.0.5 möglich ist:

As of PHP 4.0.5, every parameter in str_replace() can be an array.

Gut, hätte mal vorher nachschauen sollen. Gesagt, getun getan getätet ...

Da steht auch:

If subject is an array, then the search and replace is performed with every entry of subject, and the return value is an array as well.

Das trifft auf diesen Fall zu. Allerdings wird das durch die Schleifen unnötig oft getan. Wenn str-replace von sich aus das veränderte Array zurückgibt, ist die Ursache für das Einschlafen wohl in der unnötigen Schleife zu suchen. Ich zitiere mal:

for($i=0;$i<10000;$i++)  
   {  
   $ts=time();echo ".";flush();  
   for($j=0;$j<1000;$j++)  
   $test=str_replace('aaa','bbb',$testa);  
   $ts_=$ts_+(time()-$ts);  
   $ts=time();  
   if (bcmod($i,100)==0)  
      {  
      echo '<br>'.$ts_.'<br>';  
      $ts_=0;  
      }  
   }

10.000 (in Worten: zehntausend) mal wird die Funktion str_replace aufgerufen, um 'aaa' durch 'bbb' zu ersetzen. Sollte man sich da nicht schonmal Gedanken um den zugewiesenen Speicher gemacht haben?

Außerdem steckt da noch eine Schleife drin (for($j=0;$j<1000;$j++)), die ohne Anweisung bleibt.

Tschö, Auge

--
Die Musik drückt aus, was nicht gesagt werden kann und worüber es unmöglich ist zu schweigen.
(Victor Hugo)
Veranstaltungsdatenbank Vdb 0.1