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