Сжатие кэшированных объектов в памяти

Я создаю приложение MVC ASP.NET масштаба предприятия, которое хранит большие объекты в кеше памяти, используя корпоративную библиотеку 4.1.

Размер объектов варьируется от 18 до 22 МБ для каждого пользователя. В любой момент времени может быть 530 одновременных пользователей. Меня немного беспокоит размер объектов в памяти. Может ли кто-нибудь предложить какой-либо шаблон, который я могу использовать для сжатия объектов в памяти? Я не видел ни одной статьи, в которой упоминалось бы о том, поддерживает ли Ent Lib 4.1 сжатый кэш памяти из коробки.

Уменьшение размера данных кэшированных объектов не является вариантом, поскольку мы должны хранить данные за 3 года в памяти, чтобы избежать двустороннего обращения к веб-службе.

Спасибо.


person Nil Pun    schedule 09.01.2013    source источник
comment
Я знаю, это звучит немного легкомысленно, но... убедитесь, что на вашем сервере достаточно оперативной памяти? 22 МБ x 530 пользователей меньше 12 ГБ, а оперативная память (относительно) дешевая. Кроме того, любое сжатие обязательно требует распаковки перед использованием, что означает накладные расходы, которые вы обычно не получаете. Возможно, лучше получить на 20% больше оперативной памяти, чем пытаться уменьшить размер объектов на 20%.   -  person Damovisa    schedule 09.01.2013
comment
Вы по-прежнему можете использовать кэш локального диска на веб-сервере или даже базу данных локального кэша (например, SQL Server Compact 4.0: microsoft.com/en-us/download/details.aspx?id=17876) или что-то вроде memcached (или, осмелюсь сказать, AppFabric Caching). Опять же, 530 * 22 МБ составляет всего ~ 11,5 гигабайт, поэтому современный веб-сервер с 16 или 24 ГБ ОЗУ не должен иметь проблем, если вы используете 64-разрядную версию ASP.net и не превышаете 2 Ограничение объекта в ГБ (которое можно настроить, но я думаю, что производительность GC в конечном итоге резко падает)   -  person Michael Stum    schedule 09.01.2013


Ответы (1)


Кэш-блок Entlib не поддерживает сжатие в памяти (или на диске, если уж на то пошло).

person Chris Tavares    schedule 11.01.2013