Политики замены кэша
-
Основы кэширования
- Кэширование улучшает производительность за счет хранения часто используемых данных в оперативной памяти.
- Кэширование может быть статическим (неизменным) или динамическим (изменяемым).
-
Алгоритмы кэширования
- LRU (Least Recently Used) — наиболее распространенный алгоритм, удаляющий наименее недавно использованные данные.
- LFU (Least Frequently Used) — удаляет данные с наименьшей частотой использования.
- FIFO (First In First Out) — удаляет данные, добавленные первыми.
- LIRS (Low Interreference Recency Set) — улучшает LRU, используя новизну для оценки межреферентной новизны.
- BBRIP (Bimodal Replacement with Inverted Priority) — сочетает SRRIP и BRRIP для улучшения производительности.
- DRRIP (Dynamic Replacement with Set Dueling) — выбирает между SRRIP и BRRIP на основе производительности.
-
Политики кэширования
- Соколиный глаз (Hawkeye) — эмулирует алгоритм Белади, предсказывая будущие расстояния повторного использования.
- Сойка-пересмешница (Jayhawk) — улучшает Соколиного глаза, используя более детальные решения и машинное обучение.
- Другие политики, включая использование персептронов и цепей Маркова.
-
Дополнительные алгоритмы и методы
- LIRS — алгоритм замены страниц с высокой производительностью.
- Адаптивная замена кэша (ARC) — балансирует между LRU и LFU для улучшения результатов.
- Часы с адаптивной заменой (CAR) — сочетают преимущества ARC и Clock.
- Алгоритм замены нескольких очередей (MQ) — для повышения производительности серверного буферного кэша.
- Pannier — механизм флэш-кэширования на основе контейнеров.
- Статический анализ — для определения наихудшего времени выполнения программы.
-
Рекомендации и внешние ссылки
- Ссылки на определения различных алгоритмов кэширования и для флэш-памяти/твердотельных накопителей.
Полный текст статьи: