Я совершенно новый в этой теме, я запутался, когда я должен использовать кеш LRU, может кто-то помочь? Мне нужен сценарий, где мы можем использовать LRU и где это будет полезно., когда мы должны использовать кеш LRU? Это лучшее решение?
ответ
используется кэш LRU, когда у вас есть набор объектов, которые
1) Вы должны использовать только подмножество из них в то время
2) Общее использование памяти всего набора является слишком большой
3) Вы можете перезагружать данные для определенного объекта по команде, но для каждого элемента требуется много времени.
4) Существует местность использования памяти - элемент, который недавно используется, скорее всего, будет использован снова в ближайшее время.
Самый большой пример - это список изображений. Изображения большие, они занимают много памяти. Если вам нужно 100 из них, вы не можете держать все в битмапах - вы попадете в OutOfMemoryException. Вместо этого вы будете использовать кеш LRU для хранения последних 10 или около того, с которыми вы работали. Если вам нужно снова использовать один из них, его уже в кеше и быстро получить доступ. Если вам нужен новый, вы можете загрузить его с диска (или из сети). Таким образом, вы никогда не используете больше 10-11 битмапов, и никогда не попадаете в OutOfMemoryException.
- 1. Лучшее понимание алгоритма LRU
- 2. Когда мы должны использовать класс, а когда мы не должны
- 3. Когда мы должны использовать *, &,. , ->?
- 4. Когда мы должны использовать RTLD_DEEPBIND?
- 5. Когда мы должны использовать ListCollectionView?
- 6. Лучшее решение для кэширования
- 7. Это лучшее решение для соединений p2p
- 8. Когда ковариация C++ - лучшее решение?
- 9. Rust RAM ограниченный кеш LRU?
- 10. SPL против массива: когда мы должны использовать SPL и когда мы должны использовать Array в PHP?
- 11. Когда мы должны использовать компонент Vue.js
- 12. Когда мы должны использовать <!-- ko -->
- 13. Когда мы должны использовать событие в C#
- 14. Git, поэтому, когда мы должны использовать rebase?
- 15. Когда мы должны использовать оператор '===' в javascript?
- 16. Когда мы должны использовать ref и out
- 17. Когда мы должны использовать `` или '' в mySQL?
- 18. Когда мы должны использовать std :: enable_shared_from_this
- 19. лучший способ реализовать кеш LRU
- 20. Когда мы должны использовать курсор sql
- 21. Когда мы должны использовать PreparedStatement вместо Statement?
- 22. Java: когда мы должны использовать методы инкубационных
- 23. Когда мы должны использовать Mockery vs JUnit4Mockery?
- 24. Когда мы должны использовать split() в Python?
- 25. Когда мы должны использовать коллекцию JB Backbone?
- 26. Когда мы должны использовать Looper в Android?
- 27. Когда мы должны использовать мьютекс и когда следует использовать семафор
- 28. , когда мы должны называть base.OnPaint() когда мы
- 29. лучшее решение?
- 30. Лучшее решение для __autoload
Спасибо, теперь у меня есть более четкое представление об этом. – PalT