Pete: Frage stellt sich unerwartet erneut

Beitrag lesen

Hi,

Ok, bei einem realistischen Text (zwar Englisch, aber immerhin 1.2 MiB) sind's bei mir ~320ms vs. ~5ms - also Faktor 64... Hmm, dann ist mb_strtolower() ineffizienter implementiert, als es theoretisch nötig wäre,...»»

meine Aussage.

Andererseits: Wozu musst Du bei jedem Request megabyteweise Daten mit strtolower() bearbeiten? Das leuchtet mir irgendwie nicht so ganz ein...

Nein, muss ich gar nicht. Das Schöne(oft aber auch das Frustreiche) am Programmieren ist, dass viele Wege nach Rom führen. So findet sich nahezu für jede Problem eine lösung, die aber auch wieder neue Probleme mitbringen kann. Mir geht es jetzt auch gar nicht mehr um eine Fallbeispiel, sondern um meine Unkenntniss mb_* Funktionen bei UTF-8 nutzen zu müssen. Da fange ich dann an zu testen und stelle mir u.U. sogar die Frage, warum eigentlich UTF-8, immer gibts Ärger damit.

Ok, da das was ich vorhabe aber nun mal UTF-8 voraussetzt, habe ich keine Wahl, aber schon eine Wahl der Lösungen, und wenn ich nun in diesem Beispiel so vorgehe, dass ich eine Textdatei zeilenweise auslese, durch eine Schleife schicke, die einzelne Zeile in ein Array verwandele und dann
den Wert $array[2] in Kleinbuchstaben umwandele um ihn mit dem Request, der in Kleinbuchstaben vorliegt, zu vergleichen ist das zwar keine optimale Vorgehensweise, aber eine Vorgehensweise, wie sie oft genug bei anderen Prozeduren benötigt wird. Deshalb interessiert mich das nicht nur jetzt, sondern insgesamt für spätere Scripte.

Von daher interessiert mich so ein enormer Geschwindigkeitsnachteil natürlich sehr.

Alles in allem wüsste ich dann immer noch gerne den Grund für meine Anfangsfrage, denn an mb_strtolower liegt es ja nun doch nicht.

Pete