Swift, Strings, and Memory Use Question
Do I understand this correctly? NSString (usually) stores strings in memory as UTF-16, while Swift uses UTF-8. Correct?
If so, then I think this means that for text-heavy apps — such as Vesper, such as RSS readers and Twitter clients and similar — there could be a nice reduction in memory use due to this change. (If they use Swift strings.)
Update a few minutes later: Alastair Houghton tweets:
No. NSString stores strings as 8-bit ASCII where possible. It only uses UTF-16 if it has to
Update 8:40 pm: Well, maybe. Sometimes. Consider the many European languages that have accented characters — those aren’t ASCII characters, which means NSString would use UTF-16. But if Swift uses UTF-8 in those cases, then it should save memory, since not all (or even most) of the characters are accented.
Or, as Alastair Houghton tweeted when I asked him about this case:
Yes, e.g. in European languages (French, German, Spanish etc) where many chars are ASCII but some are accented.
(Also remember that words with accented characters — résumé, éclair — appear in written American English too.)