2010-12-15 16 views
3

Aus vielen Gründen (geringe Leistung, hoher Ressourcenverbrauch, große gemeinsame Bibliotheksgröße, große ausführbare Dateien und unsere Low-End-Plattform) erwägt mein Team, aus Qt auszuwandern. Als Teil davon suchen wir nach einer Ersetzung der QString-Klasse, die a) Unicode b) reguläre Ausdrücke c) allgemeine Operationen wie Teilstrings, Teilstringsuche, Länge (Anzahl der Zeichen, nicht Bytes), Verkettung usw. ermöglichen würde. Auch sollte es Zeichenfolgen intern in UTF-8-Codierung speichern, um Speicher zu sparen (Qt verwendet UTF-16 oder ähnliches). Auch wäre es toll, wenn es "Implizite Sharing" -Technik verwenden würde, wie QString tut. Gibt es eine LGPL (oder ähnliche) ready-to-use Klasse der Art im Universum? ...Was wäre ein QString-Ersatz?

+0

regex Abgleich mit UTF-8 verwenden würde, ist nicht genau geht die Leistung zu verbessern. Bei den Kodierungen mit fester Länge wie 'QChar' entspricht die Regex' .' einem "QChar". Mit UTF-8 kann '.' irgendwo zwischen 1 und 4 Bytes abgleichen. Das hört sich jetzt nicht so schlecht an, erschwert aber das Backtracking erheblich. I.e. Wenn Sie '(a.a) | (a.b)' mit Eingabe 'aΣb' abgleichen, müssen Sie ein Zeichen zurückverfolgen, aber wie viele Bytes waren das noch? – MSalters

Antwort

Verwandte Themen