Кэш (Cache)
Кэш — это временное хранилище для данных посещенного сайта.
В кэше сохраняются:
· Изображения — логотипы, картинки, фоны и т. д.;
· HTML;
· CSS;
· JavaScript.
Зачем нужен кэш?
Сохранение данных веб-страниц на компьютере, вместо их повторной загрузки, помогает экономить время открытия веб-сайтов в браузере. Также используется меньше данных, что особенно полезно для мобильных пользователей с ограниченными тарифными планами. Ваш телефон не должен загружать каждое изображение и веб-страницу несколько раз, поскольку он может восстановить данные из кэша. Но сохранение данных происходит не только в браузере и для веб-страниц.
Как работает кэш?
Когда вы открываете веб-страницу, браузер кэширует эти данные: загружает картинки, текст на ваш компьютер. Когда вы заходите на сайт снова, эти данные уже находятся на вашем компьютере или устройстве. При повторном заходе на сайт, если веб-страница не изменилась, браузер загружает файлы из кэша, а не заново скачивает из Интернета.
Типы использования кэша
Сервер кэширования: выделенный сетевой сервер или служба, действующая как сервер или веб-сервер, который сохраняет веб-страницы или другой интернет-контент локально. Кэш-сервер иногда называют прокси-кэшем.
Дисковый кэш: содержит недавно прочитанные данные и, возможно, смежные области данных, которые, вероятно, будут доступны в ближайшее время. Некоторые диски кэшируют данные в зависимости от того, как часто они читаются. Часто читаемые блоки хранения называются горячими блоками и автоматически отправляются в кэш.
Кэш-память: кэш-память процессора часто связана непосредственно с процессором и используется для кэширования часто используемых инструкций. Кэш-память оперативки намного быстрее, чем кэш-память на диске, но кэш-память процессора намного быстрее, чем кэш-память оперативки, потому что она находится так близко к процессору.
Флэш-кэш: временное хранение данных на микросхемах флэш-памяти — часто с использованием твердотельных накопителей — для выполнения запросов данных быстрее, чем это было бы возможно, если бы кэш находился на традиционном жестком диске или его части.
Постоянный кэш: учитывается фактическая емкость хранилища, где данные не теряются в случае перезагрузки или сбоя системы. Резервная батарея используется для защиты данных или данные сбрасываются в динамической оперативной памяти с резервным питанием от батареи в качестве дополнительной защиты от потери данных.
Алгоритмы кэша
Алгоритм кэширования — это подробный список инструкций, который указывает, какие элементы следует отбрасывать в кэш.
Наименее часто используемые (Least Frequently Used — LFU). Данный алгоритм основывается на отслеживании частоты доступа к записи. При использовании алгоритма кэширования LFU запись с наименьшим счетом удаляется первой. Этот метод используется не так часто, так как он не учитывает элемент, который изначально имел высокую скорость доступа, а затем долго не использовался.
Давно неиспользованные (Least Recently Used — LRU): этот алгоритм кэширования хранит недавно использованные элементы в верхней части кэша. При каждом обращении к новому элементу LRU помещает его в верхнюю часть кэша. Когда лимит кеша будет достигнут, элементы, к которым давно не обращались, будут удалены, начиная с нижней части кэша. Это может быть дорогостоящим алгоритмом, поскольку он должен содержать «биты возраста», которые точно показывают, когда к элементу обращались. Кроме того, когда алгоритм кэширования LRU удаляет элемент, «возрастной бит» изменяется для всех других элементов.
Последние использованные (Most Recently Used — MRU): этот алгоритм кэширования, в отличии от предыдущего, удаляет самые последние использованные элементы в первую очередь. LRU ориентируется на время: здесь чем старше элемент, тем он меньше используется и удаляется в первую очередь. MRU — наоборот, чем старше элемент, тем чаще к нему обращаются, и в первую очередь здесь удаляются последние использованные элементы, так как они меньше всего использовались. Таким образом, LRU удаляет самые неиспользуемые элементы — самые старые, а в MRU удаляет самые новые.
Кэш адаптивной замены (Adaptive Replacement Cache — ARC): этот алгоритм использует оба вышеуказанных, чтобы наилучшим способом использовать доступный кэш.
Использование при тестировании
Проблемы с Кэшем
Несмотря на то, что кэш позволяет сохранять время и данные, он может быть искаженным и иногда приносить больше вреда, чем пользы.
Вирус может скачать себя в кэш браузера, заражая весь ваш компьютер.
Файлы могут сильно устареть, если кэш не очищается автоматически, а это означает, что просматриваемые страницы могут быть неактуальными или даже вызывать ошибки.
Один из частых вопросов разработчика на баг это: “А ты кэш почистил?”. Не забывайте очищать кэш перед воспроизведением бага.
Кэш может занимать гигабайты данных. Учитывая, что компьютеры и телефоны имеют очень ограниченный размер хранилища. Кэш всех видов должен очищаться по необходимости.
Очистка кэша
Удалить кэш в браузере можно через опцию «Очистить историю».
Одна из самых известных и используемых программ – Ccleaner. Программа очищает операционную систему от неиспользуемых временных файлов, кэш интернет-браузеров со всей историей просмотров страниц.