[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: auf UTF-8 umsteigen, Folgen?



Hi,

Andreas Pakulat wrote:
> On 11.07.06 20:49:08, Kai Hildebrandt wrote:
>> Wundere dich aber nach dem Umstieg nicht, dass alles (was mit
>> Codierung zu tun hat) etwas langsamer wird.
> 
> Du meinst in TB? Wieso dass denn? Hast du Zahlen dazu?

die Performance kann leiden, wenn man UTF-8-Zeichenketten intern auch
als UTF-8 speichert. Da UTF-8 ja eine Kodierung variabler Zeichenlänge
ist, ist dann beispielsweise ein simples substr()/splice() (ab Zeichen
#n m Zeichen extrahieren) O(n+...), da die Zeichenkette von Beginn an
durchsucht werden muss. (IIRC)

Auch ist bei bekannter Anzahl von Bytes die Längenbestimmung in Zeichen
nicht O(1).

Kodiert man aber UTF-8 intern nach UCS-4, so entfallen die Probleme --
substr() ist wieder O(1+...), und auch die Längenbestimmung bei
bekannter Anzahl von Bytes ist wieder O(1). (Nachteil natürlich: Alle
Zeichen benötigen bei UCS-4 vier Bytes; Kompromiss: Man kodiert zu
UCS-2 und rekodiert nach UCS-4, wenn man ein Zeichen findet, dass in
UCS-2 vier Bytes benötigen würde.)


Zusätzlich muss man noch betrachten, dass Thunderbird -- als
Mail-Client -- die meiste Zeit sowieso a) idle oder b) im IO hängt. Der
ganze Kodierungskram ist also nahezu vollständig vernachlässigbar,
IMHO. Insofern teile ich deinen Skeptizismus vollkommen. :)


--Ingo



Reply to: