У меня есть приложение, в памяти которого находится около 1 000 000 строк по соображениям производительности. Мое приложение потребляет ~ 200 МБ ОЗУ.
Я хочу уменьшить объем памяти, потребляемой строками.
Я знаю, что .NET представляет строки в кодировке UTF-16 (2 байта на символ). Большинство строк в моем приложении содержат чисто английские символы, поэтому хранить их в кодировке UTF-8 будет в 2 раза эффективнее, чем UTF-16.
Есть ли способ сохранить строку в памяти в кодировке UTF-8, разрешив при этом стандартные строковые функции? (Мои потребности включают в основном IndexOf с StringComparison.OrdinalIgnoreCase).
List<byte>
? Не уверен, насколько сложнее будет работать с этими объектами для ваших нужд. - person Jason Down   schedule 09.03.2012