2016-04-24 2 views

ответ

1

используется кэш LRU, когда у вас есть набор объектов, которые

1) Вы должны использовать только подмножество из них в то время

2) Общее использование памяти всего набора является слишком большой

3) Вы можете перезагружать данные для определенного объекта по команде, но для каждого элемента требуется много времени.

4) Существует местность использования памяти - элемент, который недавно используется, скорее всего, будет использован снова в ближайшее время.

Самый большой пример - это список изображений. Изображения большие, они занимают много памяти. Если вам нужно 100 из них, вы не можете держать все в битмапах - вы попадете в OutOfMemoryException. Вместо этого вы будете использовать кеш LRU для хранения последних 10 или около того, с которыми вы работали. Если вам нужно снова использовать один из них, его уже в кеше и быстро получить доступ. Если вам нужен новый, вы можете загрузить его с диска (или из сети). Таким образом, вы никогда не используете больше 10-11 битмапов, и никогда не попадаете в OutOfMemoryException.

+0

Спасибо, теперь у меня есть более четкое представление об этом. – PalT

Смежные вопросы