Кэш (Cache)

Кэш — это временное хранилище для данных посещенного сайта.

В кэше сохраняются:

·        Изображения — логотипы, картинки, фоны и т. д.;

·        HTML;

·        CSS;

·        JavaScript.

Зачем нужен кэш?

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

Как работает кэш?

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

Типы использования кэша

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

Дисковый кэш: содержит недавно прочитанные данные и, возможно, смежные области данных, которые, вероятно, будут доступны в ближайшее время. Некоторые диски кэшируют данные в зависимости от того, как часто они читаются. Часто читаемые блоки хранения называются горячими блоками и автоматически отправляются в кэш.

Кэш-память: кэш-память процессора часто связана непосредственно с процессором и используется для кэширования часто используемых инструкций. Кэш-память оперативки намного быстрее, чем кэш-память на диске, но кэш-память процессора намного быстрее, чем кэш-память оперативки, потому что она находится так близко к процессору.

Флэш-кэш: временное хранение данных на микросхемах флэш-памяти — часто с использованием твердотельных накопителей — для выполнения запросов данных быстрее, чем это было бы возможно, если бы кэш находился на традиционном жестком диске или его части. 

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

Алгоритмы кэша

Алгоритм кэширования — это подробный список инструкций, который указывает, какие элементы следует отбрасывать в кэш.

Наименее часто используемые (Least Frequently Used — LFU). Данный алгоритм основывается на отслеживании частоты доступа к записи. При использовании алгоритма кэширования LFU запись с наименьшим счетом удаляется первой. Этот метод используется не так часто, так как он не учитывает элемент, который изначально имел высокую скорость доступа, а затем долго не использовался.

Давно неиспользованные (Least Recently UsedLRU): этот алгоритм кэширования хранит недавно использованные элементы в верхней части кэша. При каждом обращении к новому элементу LRU помещает его в верхнюю часть кэша. Когда лимит кеша будет достигнут, элементы, к которым давно не обращались, будут удалены, начиная с нижней части кэша. Это может быть дорогостоящим алгоритмом, поскольку он должен содержать «биты возраста», которые точно показывают, когда к элементу обращались. Кроме того, когда алгоритм кэширования LRU удаляет элемент, «возрастной бит» изменяется для всех других элементов.

Последние использованные (Most Recently UsedMRU): этот алгоритм кэширования, в отличии от предыдущего, удаляет самые последние использованные элементы в первую очередь. LRU ориентируется на время:  здесь чем старше элемент, тем он меньше используется и удаляется в первую очередь. MRU — наоборот, чем старше элемент, тем чаще к нему обращаются, и в первую очередь здесь удаляются последние использованные элементы, так как они меньше всего использовались. Таким образом, LRU удаляет самые неиспользуемые элементы — самые старые, а в MRU удаляет самые новые.

Кэш адаптивной замены (Adaptive Replacement CacheARC): этот алгоритм использует оба вышеуказанных, чтобы наилучшим способом использовать доступный кэш.

Использование при тестировании

Проблемы с Кэшем

Несмотря на то, что кэш позволяет сохранять время и данные, он может быть искаженным и иногда приносить больше вреда, чем пользы.

Вирус может скачать себя в кэш браузера, заражая весь ваш компьютер.

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

Один из частых вопросов разработчика на баг это: “А ты кэш почистил?”. Не забывайте очищать кэш перед воспроизведением бага. 

Кэш может занимать гигабайты данных. Учитывая, что компьютеры и телефоны имеют очень ограниченный размер хранилища. Кэш всех видов должен очищаться по необходимости.

Очистка кэша

Удалить кэш в браузере можно через опцию «Очистить историю».

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