HttpRuntime.Cache очищает поведение по умолчанию?

При добавлении элементов с использованием метода вставки по умолчанию Insert(key, value) и, соответственно, с использованием поведения HttpRuntime.Cache по умолчанию, когда происходит очистка?

Ограничение на пул приложений, в котором размещено мое приложение, равно 0 (неограниченно)... но я не вижу способа узнать, насколько большим может быть кеш, прежде чем произойдет очистка? Проблема в том, что я кэширую потенциально очень большой объем данных, но у меня ограниченная память на сервере, и я хочу избежать повторного использования пула приложений.

Я спрашиваю в контексте IIS6 и IIS7.

Спасибо.


person Rire1979    schedule 27.04.2010    source источник


Ответы (1)


Краткий ответ заключается в том, что кеш начинает очищаться с Cache.EffectivePrivateBytesLimit.

Ограничение по умолчанию рассчитывается с учетом ряда факторов и, как правило, должно удерживать ваш процесс от чрезмерного повторного использования. В идеале перезапуск не повлияет на приложение, но я понимаю, что есть много причин, по которым это не всегда возможно. При необходимости вы должны иметь возможность установить ограничения памяти для кэша. в соответствии с настройками перезапуска пула приложений.

Томас Марквардт из команды asp.net написал очень интересный пост с объяснением деталей.

person Joel Fillmore    schedule 05.05.2010