[fpc-devel] Performance of string handling in trunk
DrDiettrich1 at aol.com
Tue Jun 25 13:19:33 CEST 2013
Michael Schnell schrieb:
> On 06/25/2013 01:05 AM, Hans-Peter Diettrich wrote:
>> A RawByteString can obtain any encoding, so no conversions are required.
>> But when assigned back to an UnicodeString, the obtained encoding is
>> used to convert the string.
> That sounds good. The name "RAW" just misled me to think it would not
> hold a character encoding.
> If this in fact is a completely dynamically encoded string type, things
> like TStringList should use same in their interface, thus preventing all
> conversions, when a string of any encoding type is stored there and
> retrieved to a variable of the appropriate dedicated encoding type
> (while being auto-converted if retrieved to variable forcing a different
This is not the case :-(
A variable can not force a conversion, when a RawByteString is assigned
to it :-(
> Only the documentation
> shows that they seemingly are not convinced that all this decently works
> :-( .
At least it doesn't work as you expected.
> So a decent system should _additionally_ provide completely unencoded 8,
> 16, 32 and 64 Bit entity Strings for "technical" usage (similar to pipes
> etc) (now not using the "RAW" naming :-) .
It's *only* the use of strings of different encodings, that make
conversions necessary. Efficient code must be based on a single
encoding, with conversions only from and to the outer world (OS, files...).
More information about the fpc-devel