Что такое кэшированные данные в телефоне самсунг и можно ли их удалять. Кэширование данных

Стоимость старших моделей смартфонов завышена. Все мы прекрасно понимаем, что разница в цене между 16 ГБ и 32+ ГБ моделями неоправданно большая. Речь идёт и о iPhone, и о всём многообразии флагманских представителей Android. В итоге человек берёт младшую модель с 16 гигабайтами хранилища на борту в надежде, что этого хватит. Но, зачастую реальность не оправдывает его ожидания.

Что съедает память в смартфоне

Для начала нужно понять, что указанный производителем объём памяти в устройстве - это не то же самое, что доступный пользователю объём памяти. То есть, на практике нам всегда доступно меньше памяти, чем написано на упаковке, и это справедливо как для iPhone, так и для семейства Android.

В обоих случаях операционная система устройства занимает 2-3 ГБ памяти, и вернуть их в распоряжение пользователя нельзя - эта пространство нужно для работы устройства.

Поэтому, когда вы подыскиваете новый смартфон, то считайте так: 16 ГБ на самом деле примерно равно 13 ГБ, а 32 ГБ - это в лучшем случае 29-30 ГБ.

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

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

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

Настройки -> Память -> тап на Данные кэша.

Также можно выборочно очистить кэш у отдельных приложений.

Настройки -> Приложения -> тап по толстому приложению -> Очистить кэш.

В iOS таких штатных средств нет, но есть сторонние утилиты .

В наши дни 1 ГБ для одной игры уже кажется вполне приемлемым. Периодическая чистка игр с предварительным вопросом к самому себе «буду ли я в это ещё играть?» поможет избавиться от надоевших и ненужных игрушек, которые продолжают занимать порядочное количество памяти. Это же справедливо для любых других приложений. Не понравилось приложение? Не планируете пользоваться им в будущем? Удалите его, не держите просто так на устройстве.

Загружаемая пользователем в устройство музыка становится всё качественнее. Некоторые уже не воспринимают 320 кбит mp3 и хотят только flac. Такие треки занимают в несколько раз больше места на устройстве.

Подумайте, обеспечат ли используемые вами наушники достаточное качество воспроизведения звука, чтобы вы почувствовали разницу? Быть может, mp3 среднего качества вполне хватит?

Если речь идёт о фото и видео , то всё ещё хуже. В топовые актуальные смартфоны ставят 8+ мегапиксельные камеры, которые умеют снимать FullHD видео с высоким фреймрейтом и делать фото очень большого разрешения. Такие фото и видео занимают очень много места. Для примера, 1 час видео в качестве 1080p может занять на вашем смартфоне 10 ГБ места.

С отснятыми видео вариантов фактически нет. Их нужно периодически перемещать из мобильного устройства на компьютер для последующего хранения или размещения на видео-хостинге.

С хранением фотографий может помочь мобильное приложение Dropbox - в нём есть функция автоматического переноса снимков из памяти устройства в облако.

И всё же, чем более технологичными становятся наши мобильные устройства, тем больше будет требоваться места под приложения и контент. Производители понимают это, и зачастую идут навстречу пользователю, встраивая в смартфоны и планшеты слот под съёмные карты памяти . К сожалению, пользователи iPhone, гуглофонов и некоторых других линеек Android лишены такого преимущества. Google предлагает нам хранить все данные в Сети.

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

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

Что такое кэш-память

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

Обычно устройство помещает в данный район памяти обработанные данные, чтобы не подвергать обработке её заново и не расходовать лишнее время.

История появления термина

В первый раз слово «cache» (кэш) в компьютерном контексте было употреблено в 67 году прошлого века во время подготовки к выходу статьи для размещения в одном из передовых специализированных журналов «IBM Systems Journal». Публикация касалась модернизации памяти в разрабатываемой в то время компьютерной модели. Главный редактор издания Лайл Джонсон дал задание сочинить более изобразительный термин, вместо существовавшего в то время термина «высокоскоростной буфер», однако, за неимением идей сам внес предложение назвать ее словом «cache».

Публикация увидела свет в первой половине 68 года прошедшего века, ее авторы получили премию от IBM, творение возымело распространение и в дальнейшем было доработано, а термин «кэш» довольно скоро стал употребляться в компьютерной литературе как общепризнанный.

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

Функционирование

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

Специальные клиенты обращаются к информации внутри устройства:

  • операционная система;
  • веб-браузер;

Прежде всего, они обращаются именно к резервным копиям (кэш). Если там найдена запись с соответствующим идентификатором, который совпадает с личным номером запрошенного компонента данных, то употребляются элементы сведений из резерва. Тогда можно говорить о «попадании кэшa». Если в резерве соответствующая запись не обнаружена, то данные считываются из основной памяти и опять-таки копируется в тот самый резерв с присвоением идентификатора. Теперь они становятся доступными для дальнейших обращений клиентам.

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

Кэш компьютера

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

Можно продемонстрировать пример работы кэш-памяти, проведя определенную аналогию для того, чтобы верно уяснить ее суть.

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

Кэш интернет-браузера

Интернет-браузер равным образом применяет память кэшa. Он загружает туда сведения, изображения, аудиозаписи и многое другое. Это можно обнаружить по тому, что браузер бойче загружает веб-сайт, на который пользователь зачастую заходит, нежели тот, на какой попал впервые. Это происходит по причине того, что браузер «соображает». Чтобы постоянно не загружать данные с него и не расходовать на это время, он держит ее в кэш-память для оптимизации работоспособности и экономии времени. Для этого кратковременного пространства браузер занимает место на жестком диске.

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

Кэш для игр на Андроид

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

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

Игра с кэшем обычно ставится таким образом:

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

Что значит очистить кэш

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

Иногда владельцы смартфонов Самсунг при попытке освободить место в устройстве встречаются с пугающим системным предупреждением «кэшированные данные приложений будут очищены». Что это означает?

Пользователю необходимо понимать, что значит «очистить кэш», и иметь понятие к каким последствиям это может привести. Разумеется, временами бывают ситуации, когда чистить память необходимо. Это может быть обусловлено переполнением памяти или же неполадками, к которым оно способно привести. Также бывает, что кэш, вопреки своему основному назначению, может препятствовать работе компьютера. За этим требуется следить. В этом помогут различные программы, утилиты и приложения.

К примеру, программа CCleaner для стационарного компьютера (или ее аналог для Андроида в виде приложения) способна разыскать в системе устройства тот кэш, в каком пользователь не имеет необходимости, и удалить его самостоятельно. Описываемая программа значительно способствует оптимизации работоспособности устройства. Она может диагностировать ваш компьютер на предмет ошибок, почистить реестр системы, а также поставить автозагрузку программ при старте компьютера или устройства. Это тоже немаловажная функция, поскольку зачастую компьютерные приложения, которые мы загружаем из интернета, автоматом подгружаются при пуске операционной системы.

Если значительное число подобных приложений загружается во время пуска устройства, это может затратить много времени при включении. Такую ситуацию без особых усилий исправляет программа CCleaner и аналогичные ей утилиты.

Для чего необходимо очищение

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

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

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

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

  • стационарного компьютера;
  • ноутбука, нетбука;
  • планшета;
  • смартфона и проч.

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

Что такое кэш? Можно ли очищать кэш приложений на телефоне андроиде? Да можно. Нужно ли очищать кэш на андроид? Нужно и ненужно.

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

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

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

Зайдите в «Настройки», затем в закладку память, после чего в кэш данных. Вас спросят о том, хотите ли избавиться от всех данных.

Этот шаг можно настроить на периодическое автоматическое повторение, что должно помочь держать систему в хорошем состоянии.

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

Кэш память приложений в телефоне андроид является относительно небольшая по сравнению с объемом памяти смартфона или планшета?

Ее задача сократить время доступа для обработки данных и свести к минимуму нагрузку на оперативную память, чтобы сделать ее доступной для других устройств.

Она сокращает разрыва между ростом производительности и скоростью доступа к носителям данных.

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

Контроллер памяти определяет последовательность часто повторяющихся операций и в ходе выполнения перехватывает их и заменяет данными из кэша.

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

Что случится если удалить кеш

Ничего не случится, если вы удалите кеш памяти. Она представляет собой набор данных, которые являются «калькой» исходных значений, хранящихся в другом месте.

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


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

Чтобы понять основную концепцию кэширования, посмотрите на простой пример работы библиотекаря.

Когда приходит первый клиент за книгой, библиотекарь идет на склад и возвращается к прилавку с книгой чтобы дать ее клиенту.

Позже, клиент возвращается, чтобы вернуть книгу. Библиотекарь берет книгу относит на склад, возвращается к прилавку и ждет другого клиента.

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


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

В этот рюкзак, он будет ставить книги, которые возвращают клиенты — максимум 10. Теперь, когда придет другой клиент, все что потребуется от библиотекаря, это взять книгу из рюкзака и дать клиенту, поэтому клиент обслуживается быстрее.

Примерно все так работает и на телефоне андроид. Как видите от объёма и очистки также многое зависит – уменьшается скорость обслуживания, в нашем случае это производительность системы андроида.

Поэтому вывод такой: очищать кэш на андроиде можно, но нужно ли его очищать – решать только вам. Успехов.

Кэширование — это один из способов оптимизации Web приложений. В любом приложении встречаются медленные операции (SQL запросы или запросы к внешним API), результаты которых можно сохранить на некоторое время. Это позволит выполнять меньше таких операций, а большинству пользователей показывать заранее сохраненные данные.

Наиболее популярная технология кеширования для Web приложений — Memcache .

Когда нужно кэшировать

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

  • Используйте классы или функции, для работы с данными. Не используйте повторяющихся SQL выборок в основном приложении.
  • Используйте обертки для работы с внешними API.

Что кэшировать?

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

  • Результаты запросов к внешним сервисам (RSS, SOAP, REST и т.п.).
  • Результаты медленных выборок из базы данных.
  • Сгенерированные html блоки либо целые страницы.

Кэширование выборок из баз данных

Запросы к базе данных — наиболее распространенный пример. На основе Мemcache реализуется очень просто:

!$list = memcache_get("online_users") ) { $sql = "SELECT * FROM users WHERE last_visit > UNIX_TIMESTAMP() - 60*10"; $q = mysql_query($sql); while ($row = mysql_fetch_assoc($q)) $list = $row; memcache_set("online_users", $list, 60*60); } return $list; } $list = get_online_users(); ...

# Запрос на получение пользователей кэшируется на 1 час

Обновление данных

Если Вы кэшируете данные, которые могут обновляться, необходимо очищать кэш после каждого обновления:

memcache_delete("user" . $id); }

Кэширование списков

Допустим, Вы кэшируете данные каждого пользователя, как в примере, а также их списки (например, список online пользователей). При обновлении данных пользователя, Вы удаляете данные из кэша только для указанного пользователя. Но его данные могут также присутствовать в списке online пользователей, которые тоже лежат в кэше. Сбрасывать списки при каждом обновлении данных любого пользователя не эффективно. Поэтому обычно используют такой подход:

  1. Кэшируют списки, которые состоят только из ID пользователей.
  2. Для вывода списка отправляют отдельный запрос для получения данных каждого пользователя.

Реализация выглядит так:

id FROM users WHERE last_visit > UNIX_TIMESTAMP() - 60*10"; $q = mysql_query($sql); while ($row = mysql_fetch_assoc($q)) $list = $row["id"] ; memcache_set("online_users", $list, 60*60); } return $list; } $list = get_online_users(); foreach ($list as $id) { $user = get_user($id); ... }

# Получим список ID пользователей и для каждого из них получим актуальные данные

Для получения данных сразу нескольких объектов можно использовать Multiget .

Повторные запросы

Некоторые данные могут запрашиваться несколько раз в рамках одной страницы, например:

get_user($_SESSION["id"])["name"] )?>

... Email: get_user($_SESSION["id"])["email"] ?> ... get_user($_SESSION["id"])["nick"] ?>">Моя страница ...

Каждый вызов get_user() будет получать данные из кэша. Если Memcache стоит на отдельном сервере, это вызовет большой сетевой трафик и задержки.

Чтобы этого избежать, можно использовать дополнительный кэш внутри самого приложения:

global $app_cache; if ($app_cache["user" . $id]) return $app_cache["user" . $id]; if (!$data = memcache_get("user" . $id)) { $sql = "SELECT * FROM users WHERE id= " . intval($id); $q = mysql_query($sql); $data = mysql_fetch_assoc($q); memcache_set("user" . $id, $data, 60*60); $app_cache["user" . $id] = $data; } return $data; } function save_user($id, $data) { global $app_cache; mysql_query("UPDATE users SET ... WHERE id = " . intval($id)); memcache_delete("user" . $id); unset($app_cache["user" . $id]); }

В реальных приложениях, имеет смысл иметь обертку для Memcache с дополнительным кэшом:

inner_cache)) return $this->inner_cache[$key]; $data = memcache_get($this->resource, $key); $this->inner_cache[$key] = $data; return $data["value"]; } public static function set($key, $value, $ttl) { memcache_set($key, $value, $ttl); $this->inner_cache[$key] = $value; } public static function del($key) { memcache_delete($key); unset($this->inner_cache[$key]); } }

# $inner_cache хранит дополнительный кэш

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

public static $inner_cache_enabled = true; public static function get($key) { if (self::$inner_cache_enabled && array_key_exists($key, $this->inner_cache)) return $this->inner_cache[$key]; $data = memcache_get($this->resource, $key); $this->inner_cache[$key] = $data; return $data["value"]; } public static function set($key, $value, $ttl) { memcache_set($key, $value, $ttl); if (self::$inner_cache_enabled) $this->inner_cache[$key] = $value; } public static function del($key) { memcache_delete($key); unset($this->inner_cache[$key]); } } ... mem_cache::$inner_cache_enabled = false;

# Отключаем внутренний кэш

Подогревание

При обновлении особенно тяжелых данных следует использовать не сброс кэша, а прямое обновление данных в нем:

# операции по обновлению внешних ресурсов $data = file_get_contents("http://rss.com/rss"); memcache_set("rss", $data, 60*60); }

Это позволит избежать дополнительной нагрузки при выполнении тяжелых выборок, когда ключ удаляется. Такую методику обычно используют в cron задачах, чтобы периодически обновлять результаты очень тяжелых выборок.

Время жизни (ttl)

ttl (время жизни) — это время, после которого, данные будут удалены из кэша. В Memcache устанавливается в секундах:

60*60 );

# Установка ttl на 1 час

Чаще всего ttl ставят от нескольких минут до нескольких дней. Не используйте значение 0 (бесконечное хранение), это может засорить память.

LRU

Любой кэш работает по принципу вытеснения если ему не хватает памяти. Т.е. если Memcache может использовать максимум 1G памяти, а Вы пытаетесь сохранить ключей на 2G, то половину из этих данных Memcache удалит. Для определения, какие именно ключи удалять, используется алгоритм LRU (Least Recently Used):

Memcache постарается удалить прежде всего те данные, которые запрашивались очень давно (т.е. менее популярные удалит, а более популярные оставит).

Кэширование очень медленных запросов

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

Чтобы этого избежать, необходимо использовать специальную методику дублирования .

Атомарные операции

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

Memcache поддерживает две атомарные операции увеличения и уменьшения чисел:

# Увеличит счетчик на 1, функция memcache_decrement() уменьшает счетчик

Самое важное

Кэширование в приложениях на основе Memcache — это очень сильный инструмент. Не забывайте, что Memcache не гарантирует Вам сохранности данных. Это значит, что нельзя рассчитывать на то, что сохраненные на 60 минут данные будут находиться в кэше именно 60 минут.

Диаграмма кэша памяти ЦПУ

Кэш - это память с большей скоростью доступа, предназначенная для ускорения обращения к данным, содержащимся постоянно в памяти с меньшей скоростью доступа (далее «основная память»). Кэширование применяется ЦПУ , жёсткими дисками , браузерами и веб-серверами .

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

Когда клиент кэша (ЦПУ, веб-браузер, операционная система) обращается к данным, прежде всего исследуется кэш. Если в кэше найдена запись с идентификатором, совпадающим с идентификатором затребованного элемента данных, то используются элементы данных в кэше. Такой случай называется попаданием кэша . Если в кэше не найдено записей, содержащих затребованный элемент данных, то он читается из основной памяти в кэш, и становятся доступным для последующих обращений. Такой случай называется промахом кэша . Процент обращений к кэшу, когда в нём найден результат, называется уровнем попаданий или коэффициентом попаданий в кэш.

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

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

При модификации элементов данных в кэше выполняется их обновление в основной памяти. Задержка во времени между модификацией данных в кэше и обновлением основной памяти управляется так называемой политикой записи .

В кэше с немедленной записью каждое изменение вызывает синхронное обновление данных в основной памяти.

В кэше с отложенной записью (или обратной записью ) обновление происходит в случае вытеснения элемента данных, периодически или по запросу клиента. Для отслеживания модифицированных элементов данных записи кэша хранят признак модификации (изменённый или «грязный» ). Промах в кэше с отложенной записью может потребовать два обращения к основной памяти: первое для записи заменяемых данных из кэша, второе для чтения необходимого элемента данных.

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

Кэш центрального процессора

Кэширование результатов работы

Многие программы записывают куда-либо промежуточные или вспомогательные результаты работы, чтобы не вычислять их каждый раз, когда они понадобятся. Это ускоряет работу, но требует дополнительной памяти (оперативной или дисковой). Примером такого кэширования является индексирование баз данных.




Top