wiso ist das sooo langsam

  • Wiso ist dieser code Soooo CPU lastig??

    Code
    $smiles=array( '*wink*' => 'wink.gif',
                   '*bla*   => 'bla.gif',
                   '*LOL1*' => 'lol.gif',
                   '*LOL2*' => 'LOL.gif );
    
    
    
    
    $eintrag=strtr( $eintrag, $smiles );


    Wobei zu beachten ist, das die array $smilesi n wirklichkeit 10+ einträge enthält und der string $eintrag ca 1A4 seite lang ist.

    das legt meine 3Ghz CPU für 2min lahm.


    Gibt es einen schnelleren code ???

    oder wie würdet ihr das Problem lösen ??

  • Wie wärs damit:

    Code
    $smiles=array( '*wink*' => 'wink.gif',
                   '*bla*'  => 'bla.gif',
                   '*LOL1*' => 'lol.gif',
                   '*LOL2*' => 'LOL.gif );
    
    
    foreach ($smiles as $change)
      str_replace(array_keys($change), array_values($change), $eintrag);

    "Carpe Diem" powered by positiv Feelings

  • Ok, also der letzte Codesnippsel war nur so schnell dahin geschmissen. Sorry, denn er weißt Fehler auf.
    Nun hab ich aber ein kleines Script verfasst, welches deine Aufgabe erledigt:


    Und das funktioniert diesmal auch. :wink:

    "Carpe Diem" powered by positiv Feelings

  • Ne leute der Fehler war ein ganz anderer:


    und in der Forschleife hat die -1 gefehlet so das das ganze auf eine nicht existenten teil einer arrayangewendet werden sollte.

    was aufeinmal zu 100% CPU auslastung mit 3GB ram verbrauch führt.

  • Hmmm...ist aber schon ziemlich weit weg von deiner 1.Version...
    Nunja, zudem war in deinem 1.Post ein Doppelfehler. Es fehlten 2 ' - so dass sich der Fehler augenscheinlich aufhob und nicht bemerkt wurde.
    1.) hinter bla*
    2.) hinter LOL.gif

    Nunja, scheint sich nun aber erledigt zu haben...

    "Carpe Diem" powered by positiv Feelings

  • ja das erste war einvereinfachte version, zum reinen Verständniss des Problems.

    habe die array bloß für das forum geschriben, bei mir kommt die shcon imemr direkt aus der DB.

  • jup das war bloß ein kleiner denkfehler den ich aber immer wieder übersehen habe.

    ODer ich muss meienr CPU beibringen im nichts zu suchen, das währe auch was.