sed bei utf-8 500 mal langsamer
Hi Sed läuft bei mir mit utf-8 sehr langsam. Ich habe eine 7 MB-Datei aus Labview mit sed bearbeitet "sed 's/,/./g'" . Dabei stellte sich heraus das mein Rechner dafür etwa 6-7 Minuten braucht (SuSE 9.2 AMD Athlon XP 2000+ mit 512 MB RAM, sed-Version 4.1.2). Bei meinem Bürokollegen auf seinem Laptop (Debian unstable, Pentium M 1,6 GHz, 512 MB RAM, sed-Version 4.1.4) dauert der gleiche Aufruf mit der identischen Datei nur zwischen 0,95 und 1,5 Sekunden. Da die Rechner zumindest bis auf eine Größenordnung gleich schnell sein müssten haben wir nach einer Erklärung gesucht, denn das ist immerhin ein Geschwindigkeitsunterschied um den Faktor 400 bis 600. Zum Test habe ich bei mir mal LANG und LC_CTYPE auf "de_DE@euro" umgestellt. Siehe da nun braucht mein Rechner auch nur noch zwischen 0,6 und 0,7 Sekunden. Was soll denn das? Da mir der Language/Codepage-Horror seit langem ein Ärgernis ist, benutze ich aus Überzeugung utf-8. Aber nun frage ich mich doch: "zu welchem Preis?". Ein Gewschwindigkeitsnachteil um Faktor 500 bei sed kommt mir irgendwie etwas arg viel vor. mfg Axel
Hallo Eine weitere Recherche meines Kollegen hat ergeben, dass es an der glibc liegt. Ein von ihm zu testzwecken durchgeführtes vorübergehendes Upgrade von glibc 2.3.2 auf 2.3.4 hat das Problem behoben, ohne dass er am sed-Binary etwas geändert hat. Zumindest schrumpft der Geschwindigkeitsunterschied von Faktor 500 dann auf 2 bis 3. Es findet sich auch ein entsprechender Eintrag im changelog auf den Entwicklerseiten. Noch ein Hinweis bevor hier irgendjemand bei der Performanceverbesserung sein System schreddert. glibc-Updates stellen einen extrem schwerwiegenden Eingriff ins System dar. Ich rate allen, die nicht wirklich genau wissen was sie tun, dringend von Basteleien an der glibc ab. glibc-2.3.4 ist bei debian noch "experimental". mfg Axel
participants (1)
-
Axel Heinrici