Как уменьшить объем памяти в приложениях .NET, интенсивно использующих строки?

У меня есть приложение, в памяти которого находится около 1 000 000 строк по соображениям производительности. Мое приложение потребляет ~ 200 МБ ОЗУ.

Я хочу уменьшить объем памяти, потребляемый строками.

Я знаю, что .NET представляет строки в кодировке UTF-16 (2 байта на символ). Большинство строк в моем приложении содержат чисто английские символы, поэтому хранить их в кодировке UTF-8 будет в 2 раза эффективнее, чем UTF-16.

Есть ли способ сохранить строку в памяти в кодировке UTF-8, разрешив при этом стандартные строковые функции? (Мои потребности включают в себя в основном IndexOf с StringComparison.OrdinalIgnoreCase).

17
задан DxCK 10 March 2012 в 08:59
поделиться