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