T
O`Boyle schrieb:
...was würdest du machen wenn es in Echtzeit gehen soll lieber casten und auf multibyte Zeichensatz oder so wie du casten und bishen Zeit verlieren ?
Warum der Cast falsch ist, wurde ja schon geklärt.
Also nun zur Performance-Frage: Ein Program muss zuerst korrekt sein, dann schnell. Ein schnelles Programm, das schnell nicht funktioniert, ist einfach nichts Wert oder kann sogar Schaden anrichten (von der Ampelsteuerung über Medizinalgeräte bis zur Raumfahrt oder dem Militär).
Unter Windows würde ich den Zeichensatz auf Unicode umstellen, und den Code so anpassen, dass keine Konvertierung nötig ist. Windows benutzt intern sowiso Unicode, d.h. Funktionen, die Multibyte Character als Argumente haben, konvertieren diese intern.
Um die Performance würde ich mir zuerst keine Gedanken machen, sondern die richtigen Abstraktionen finden und mit dem Code ausdrücken, was das Programm machen soll. Erst wenn du Engpässe hast, dann sollst du messen und ggf. optimieren. Optimierungen, die im Vergleich zu anderen Dingen im Programm nicht ins Gewicht fallen, nennt man Mikrooptimierungen und sie bringen meist gar nichts oder spielen sich in einem nicht messbaren Bereich ab. Beispielsweise dauert das Erstellen des Verzeichnises ziemlich sicher sehr, sehr viel länger als die Multibyte zu Unicode-Konvertierung. Hier noch ein Wikipedia Artikel zu dem Thema (Stichwort: Premature optimization): http://en.wikipedia.org/wiki/Program_optimization
So, in diesem Sinne, viel Spass beim Programmieren.
Gruss Simon