Почему не сохраняется в кэш

Обновлено: 05.07.2024

Хочу рассказать вам о том, как мы в Яндекс.Браузере попытались сделать кэш не таким бесполезным для пользователей, как обычно. В недавно вышедшей новой бете Яндекс.Браузера для Android (планируем и для других ОС) можно получить доступ к недавно посещенным сайтам даже при отсутствии соединения с интернетом. Причём работать это должно гораздо надёжнее и удобнее, чем всё, что вы видели до этого.


Именно это наша команда и взялась реализовать в Яндекс.Браузере. Мы поставили перед собой задачу добиться предсказуемой и качественной работы в офлайне с использованием браузерного кэша.

Кэширование обычное

Если обратиться к опыту десктопных браузеров, то можно вспомнить автономный режим в Internet Explorer или Firefox, который заключался в попытках браузера загрузить запрошенную страницу из сохраненной копии или кэша. Десять или даже двадцать лет назад это было особенно актуально из-за широкого распространения dialup и оплаты за время, проведенное в сети. Было дешевле вначале загрузить все нужные сайты, уйти в офлайн и уже там продолжить их чтение совершенно бесплатно. Со временем потребность в подобных решениях стала падать, и работа над кэшированием в тех или иных продуктах если не приостановилась, то уж точно продолжалась не в направлении офлайна.

Современные мобильные браузеры напротив столкнулись с проблемой офлайна в полной мере. Нет, за время, проведенное в интернете платить теперь не нужно, но пользователи сети сами стали мобильны и в любой момент могут выйти из зоны покрытия. Каких-то радикальных решений этой проблемы в популярных продуктах нами замечено не было. При этом в мобильных сборках Chromium под Android (напомним, Яндекс.Браузер использует его в своей основе) процесс кэширования представляет из себя сильно упрощенную версию с десктопа. Никакой сложной логики. Все закэшированные ресурсы живут в одной очереди и удаляются в соответствии с алгоритмом LRU (удаляются те элементы, которые не использовались дольше всех). Сам кэш представляет из себя «свалку» из отдельных ресурсов (html, css, png, js, . ) с емкостью порядка 300 МБ. С точки зрения кэширующего алгоритма эти ресурсы никак не связаны между собой и удаляются независимо друг от друга при нехватке памяти для новых страниц.



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

Кэширование прогнозируемое

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

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

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


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


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

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

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


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

Перспективы кластерного кэширования

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

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

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

Кэш приложений может быть спорной темой на Android. Многие люди постоянно чистят кэш приложений, веря в то, что это позволит смартфону работать быстрей. Другие говорят, что это, в первую очередь, сводит на нет всю цель кэширования и просто увеличивает время запуска приложений и выполняемых действий. Истина, как обычно, где-то посередине. Некоторые приложения могут не использовать кэширование эффективно, из-за чего используются излишне большие объемы памяти. Иногда кэш может вызывать проблемы после выхода обновления и надо его сбрасывать. А еще некоторые приложения могут начинать работать медленнее, когда их кэш становится очень большим. Сказать однозначно, надо ли его удалять, нельзя. Но сейчас рассмотрим эту тему подробнее, чтобы вы понимали, когда это делать и как?


Надо ли чистить кэш телефона?

Что такое кэш на Андройд

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

Наш Иван Кузнецов не так давно писал о том, что никогда не чистит кэш и считает это не нужным. Многие из вас, возможно, с ним не согласны. Да я и сам переодически провожу эту процедуру. Тем не менее, для полноты картины можете ознакомиться с его мнением.

Очистка кэша и данных на Android

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


Очистка лишней не будет? Не факт.

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

Как очистить память смартфона. Пять простых шагов.

Когда надо чистить кэш

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

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

Google Play рассылает пустые обновления приложений. Что делать?

Как очистить кэш и данные на Android

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

Шаг 1: Запустите «Настройки» и перейдите в раздел «Хранилище» (или найдите его поиском). Так вы сможете узнать, сколько памяти вашего смартфона занято и чем.

Шаг 2. В разделе «Хранилище» найдите «Приложения» (или «Другие приложения») и выберите его. В нем будут перечислены все приложения, а также то, сколько места каждое из них занимает. В некоторых версиях ОС можно найти сортировку приложений по алфавиту или размеру.

Шаг 3: Зайдите внутрь приложения и удалите кэш или данные. Только надо понимать, что это действие необратимо.


Три простых шага для очистки кэша.

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

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

Надо ли чистить кэш Android-приложений

Еще больше полезных советов и рассуждения в нашем Telegram-канале.

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

Чего точно не стоит делать с кэшем, так это чистить его каждый день или каждую неделю. Так вы точно не сделаете лучше никому.

Наверное, все хотя бы раз задавались вопросом, а не пришла ли пора почистить кэш смартфона. Он не приходил в голову только тем, кто делает это на постоянной основе, исправно удаляя данные, которые накопила система и приложения. Зачем? Одни таким образом стараются просто держать свой аппарат в чистоте, другие искренне верят, что удаление кэша позволит повысить быстродействие системы, а третьи делают это просто потому, что так делают все. Я, как приверженец рационального подхода во всём, кэш не удаляю от слова совсем. Объясняю на пальцах, почему.


Кэш не вредит, а помогает. Так что не удаляйте его

Я совру, если скажу, что никогда не чистил кэш сам. Я хорошо помню те смутные времена, когда 4 и 8 ГБ памяти были нормой, а Android-смартфоны – даже флагманские – начинали тормозить сразу после того, как их доставали из коробки. Тогда чистка кэша казалось логичным и вполне эффективным способом по недопущению переполнения встроенного хранилища и замедления операционной системы. Поэтому категория приложений-клинеров, или, по-простому, чистильщиков, была в Google Play одной из самых популярных. Но сегодня в них нет никакого смысла.

Что такое кэш и зачем он нужен

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

Подпишись на нас в "Google Новостях". Так удобнее следить за обновлениями сайта.

Многие думают, что файлы кэша как-то засоряют систему и заставляют смартфон работать медленнее, но это не так. Напротив, они позволяют ему работать быстрее, поскольку не вынуждают обрабатывать данные заново, а просто берут их из специального раздела хранилища. Браузеры сохраняют информацию о часто посещаемых ресурсах, чтобы тратить меньше времени на их загрузку при последующих обращениях. Удалите их и сайты начнут обрабатываться медленнее. То же самое касается и других приложений – от видеохостингов вроде YouTube и социальных сетей вроде «ВКонтакте» или Facebook.

Нужно ли удалять кэш на Android


Из Android Nougat вообще пропал инструмент удаления системного кэша. Даже Google считает, что в этом нет смысла

Нет никакого смысла в том, чтобы удалять файлы кэша.

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

Google уже давно научила Android грамотно работать с файлами кэша – хоть с системными, хоть в приложениях. Серьёзный переворот в этой области случился в 2016 году, когда вышла Android 7.0 Nougat. Если до того момента в меню восстановления операционной системы была возможность сброса системного кэша, то после – он исчез. В результате вышло даже лучше, чем на iOS.

Почему приложения так много весят со временем


Посмотрите на Telegram на моём iPad. Чаще всего я пользуюсь мессенджером именно на Android-смартфоне, где файлы кэша занимают меньше 70 МБ, тогда как на планшете с iOS их больше по объёму примерно в 30 раз. Всё дело в том, что iOS кэширует почти всю информацию, которую получает. Из-за этого фотографии, видеозаписи и другие медиавложения проходят через память устройства и остаются там. Это не плохо, просто эта такая особенность системы. Android ведёт себя более рационально, загружая только ключевые данные, но не скачивает все файлы без разбора.

Я уже несколько лет не удаляю кэш и прекрасно себя чувствую. У меня не было проблем ни со старым LG G3, ни с LeEco Le 2, ни с Galaxy A51, ни с Honor View 20. Да, я, как, наверное, и все, сталкивался с замедлением работоспособности старых смартфонов. Но тут не нужно искать второго дна и сваливать всю вину на кэш, который якобы тормозит систему. На самом деле ничего такого не происходит и, даже стерев весь кэш, вы не вернёте аппарату былое быстродействие, просто потому что он устарел и банально перестал тянуть все функциональные обновления, которые на него свалились. Поэтому не порите горячку.

Свободное общение и обсуждение материалов


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

Beats Buds Studio

Буквально на днях Apple выпустила обновление Apple Music для Android. Его состав был ожидаемым: поддержка lossless-композиций и технологии Spatial Audio. Первое нововведение представляет собой музыку без потери качества, а второе – пространственное звучание, которое имитирует эффект присутствия. Несмотря на то что обновление пока находится в состоянии беты, уже сейчас пользователи задумались, а какие наушники нужны, чтобы прочувствовать все нововведения? Разберёмся.


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

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

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

Полный бред, все приложения зависают и за переполненного кеша. Объясняю:- Абсолютно все приложения обновляются минимум раз в месяц и старые параметры не соответствует требованиям параметрам после обновления. Как и на вашем сайте wp обновляется регулярно и после обнов функционал сайта не работает корректно. Совет горе писателю? Доступен WordPress 5.3.2! Пожалуйста, сообщите администратору сайта. И возьмите учебники и выучите мат.часть работы и функционал приложений.

Прикрепленное изображение

  1. Полное описание проблемы
  2. Версия Kate (мод / оригинал, номер версии)
  3. Версия Android
  4. Наличие Google Play Services, если проблема связана с музыкой
  1. Перестала грузиться музыка! Ничего не менял, интернет стабильный, Wi-Fi.
  2. Мод прокси, 46 версия
  3. Андрюха 5.1
  4. Сервисы присутствуют

Прикрепленное изображение

  1. Коротко и по существу
  2. Если будут замечены посты о которых написано вверху (Аниме, Разговоры ни о чем)
  3. Посты об Изменении шапки темы и другие организационные вопросы не будут считаться оффтопом.
  4. Если не согласны - Чат ВК (вход по приглашению от участников)

  1. Полное описание проблемы
  2. Версия Kate (мод / оригинал, номер версии)
  3. Версия Android
  4. Наличие Google Play Services, если проблема связана с музыкой
  1. Перестала грузиться музыка! Ничего не менял, интернет стабильный, Wi-Fi.
  2. Мод прокси, 46 версия
  3. Андрюха 5.1
  4. Сервисы присутствуют
Различные инструкции по модифицированию Kate Mobile

MrKirill1232, если остальные без пробела (пустого перевода строки), то и после первой части он не нужен :)

Добавлено 09.07.2019, 20:42:

MrKirill1232, думаю из оффтопа можно разрешить организационные вопросы по этой теме ? :)

Добавлено 09.07.2019, 20:46:

Клуб пользователей Kate Mobile | Способы обхода заблокированного доступа к интернет-ресурсам

ссылки местами попутал (написано одно, ведет на другое, и наоборот)

вместо этого предлагаю:

примерно такое во всех темах, где не ссылка только то, где находимся сейчас (по желанию как нибидь покрасить что-то где-то как-то :D )
Хотя вродь норм и без покраски

Уточню: везде именно в таком порядке. Без перетасовки

MrKirill1232, красота :)

Осталось в остальных темах проделать примерно то же :)

Добавлено 09.07.2019, 21:37:

* с блоком ссылок

Я так понял все модификации Кати теперь сюда заливать?

Добавлено 09.07.2019, 21:57:

да у нас все такие кроме IWITI и Карабаса-Барабаса и почти все твои
(мой и Extra и Макса моды на мод Fellin'а, IOS и Gulag или на мой или на Extra)

S__, тогда модификация модификации модификации?

предлагаю пока у нас нет куратора разрешить из оффтопа организационные вопросы.

а кураторами я предлагаю Кирилла, Олега, Нео, ваши варианты?

S__,
Мне после первого раза пишут периодически на счёт смены иконок, я бы и рад обновлять ваши моды с новыми иконками под своими старыми записями, но они теряются на форуме.. Как быть?

ЗАГОТОВКА. Поредактирую, покажу как я хочу — дам код

Прикрепленное изображение

MrKirill1232, будешь спать я таким темпом сделаю идеальную шапку и предложу уже свой пост шапкой :D


Kate Mobile Lite Mod


вопросы, багрепорт в
Клуб Mod Kate Mobile
ответом на любой мой пост (лучше на этот)

UPD: LITE версия упразднена на неопределенное время. Пост пусть тут висит. Возможно он мне еще понадобится.

UPD.16.09.21: музыка накрылась, да, знаю, помянем. Следственно и noroot в 79 не добавлен (а смысл?) и обход не добавлен (оно не работает). Вродь как добавлена поддержка FakeSign (у кого есть поддержка проверяем). Подпись оригинальная сохранена вродь как (по этому и нужен рут. Таким образом хотяб у тех, у кого и патчи применены и гугл есть может музыка заработает. а может и не заработает. проверить надо. но не ставить же гугл ради Кейта. У кого он есть проверьте). Вобщем нужны добровольцы с гуглом (обьязательно) и или патчи Android и/или поддержка FakeSign (или всё вместе). Если у вас по каким то причинам музыка пока не сдохла, то пробовать эту версию рановато, а если уже сдохла (тоесть терять особо нечего), то можно и попробовать. У кого не устанавливается в Lucky

Patcher (или любой другой софт для перекомпиляции) пересобрать & установить (ну в таком случае минус оригинальная подпись).

Читайте также: