Страниц: 1 [2] 3  Все   Вниз
  Отправить эту тему    Печать  
Автор Тема: IgnoreOnceVisitedSites — помогает кэшировать с умом, экономя ресурс HDD/SSD  (Прочитано 41414 раз)
0 Пользователей и 1 Гость смотрят эту тему.
DIGGER
Старожил
****

Репутация: +14/-3
Offline Offline

Сообщений: 304



« Ответ #20 : 28 Май 2011, 12:33:05 »

Цитировать
…чем форум, который Вы посетили 150 000 раз за год и каждый раз кэшировали на хард/SSD?
Наверно я делаю что-то не так, потому что у меня только при первом посещении идёт запись в кэш.
Да и вообще: не хотите не используйте дополнение.
Сообщить модератору   Записан
Доктор ТуамОсес
Гость
« Ответ #21 : 28 Май 2011, 12:50:44 »

Наверно я делаю что-то не так, потому что у меня только при первом посещении идёт запись в кэш.
Нет.
Наверное я "что-то делаю не так"Грустный

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

Наверное я что-то делаю не правильно и существует способ (про который не известно мне и известно Вам) обновлять файлы в кэше не перезаписывая их.
Откройте секрет: как Вы это делаете?
Сообщить модератору   Записан
DIGGER
Старожил
****

Репутация: +14/-3
Offline Offline

Сообщений: 304



« Ответ #22 : 28 Май 2011, 12:58:35 »

Цитировать
…обновлять файлы в кэше не перезаписывая их
тю-тю?  Балбес!

Мыслите шире:
я не пишу HTML страницу форума в кэш - она же изменяется каждые две минуты! Смысл её кэшировать? Кэшировать нужно с умом, а не всё подряд.
Сообщить модератору   Записан
Доктор ТуамОсес
Гость
« Ответ #23 : 28 Май 2011, 13:27:21 »

тю-тю?  Балбес!

Мыслите шире:
я не пишу HTML страницу форума в кэш - она же изменяется каждые две минуты! Смысл её кэшировать? Кэшировать нужно с умом, а не всё подряд.
Непонимаю

Что же Вы тогда кэшируете?

Если HTML-страницы Вы не кэшируете.
Редко посещаемые сайты - тоже не кэшируете.

Только редко изменяемые картинки и флэшки с часто посещаемых страниц?  Шокирован  Балбес!

А как тогда я буду осуществлять поиск по кэшу с помощью какого-нибудь десктоп зеарцха если я буду не сохранять в кэш HTML файлы, в которых и храниться эта информация?  Не могу понять
Сообщить модератору   Записан
DIGGER
Старожил
****

Репутация: +14/-3
Offline Offline

Сообщений: 304



« Ответ #24 : 29 Май 2011, 01:18:44 »

Цитировать
А как тогда я буду осуществлять поиск по кэшу …
Что Вы ищете, конкретно?
Сообщить модератору   Записан
Inversion
Новичок
*

Репутация: +6/-0
Offline Offline

Сообщений: 17


WWW
« Ответ #25 : 01 Июнь 2011, 10:37:58 »

Я бы предложил немного изменить алгоритм кэширования сайтов.
При первом посещении сайта выводить краткое сообщение в браузере:
  Кэшировать данный домен  example.site? И кнопку Да или Нет.
А дальше уже по вашему алгоритму, без счетчиков.
В базовом сценарии использования расширения, а именно, когда открывается много новых сайтов при просмотре результатов поиска, такое сообщение будет раздражать.

Бывают сайты которые полезно кэшировать, например некоторые форумы, ютуб,
а сайты типа rbc.ru не имеют смысла кэшировать, хотя могут посешать многократно.
Для решения таких задач лучше подходят белые списки и правила в разделе Запись в кэш. Но одно другому не мешает. Я так и пользуюсь и тем и тем.

Позволю себе не согласиться.…
Ваше несогласие строится на том, что Вам нужно кэшировать HTML каждой посещаемой странички. А это совсем другая задача и другая стратегия кэширования.
Данное расширение помогает только в стратегии кэширования статики (картинки, стили, скрипты, Flash). Стратегия используется для ускорения загрузки страниц сайтов при последующих посещения за счет уменьшения количества запросов к серверу и времени загрузки больших элементов страницы.

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

Жестко прописывать g_name и g_extensionRoot внутри самого расширения я считаю неправильным
Согласен. Исправил.

1. Использование обрабочика RequestHeaderReceived для решения вопроса, писать в кэш или нет - не лучший вариант. Если заменить его на BeforeRequestHeaderSend, то все запросы, которые блокируются или берутся из кэша, свободно выполнятся без вмешательства расширения.
Классно. Раньше этого события не было. Улучшил.

Цитата: Михаил
2. Чтобы выведенная предыдущими расширениями в строку "Правила" монитора информация не затиралась, делается так:
hc.monitor_string = hc.monitor_string .. MyStr
Исправил

Цитата: Михаил
3. Использование table.foreach не приветствуется в нынешней версии LUA и вообще не будет поддерживаться в последующих. Вместо этого можно, к примеру, делать так:
for param,value in pairs(hc.get_global(g_name)) do
   f:write(param:sub(5)..' = '..value..'\r\n')
end
Избавился от всех table.foreach

Цитата: Михаил
4. В обработчике Destroy надо очищать все глобальные переменные, иначе они останутся висеть в памяти. К примеру, так:
hc.set_global(g_name)
Добавил.

Цитата: Михаил
6. В монитор хорошо бы выводить только необходимый минимум информации, не забивая все остальное.
Немножко сократил текст сообщения о Referrer. Думаю те, кому эти сообщения мешают, смогут поправить их под свои нужды, или убрать вообще.

Спасибо вам за дельные советы и за исправление моих ошибок.

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


* IgnoreOnceVisitedSites v2.0.1.zip (5.33 Кб - загружено 131 раз.)
Сообщить модератору   Записан
Михаил
Модератор
*****

Репутация: +269/-14
Offline Offline

Сообщений: 5055



« Ответ #26 : 02 Июнь 2011, 08:05:27 »

v2.0.1
Просто отлично! Спасибо.

PS  информацию о времени последнего визита, выводимую в окошке, можно форматировать в приемлемый для глаза вид. Например, вместо lastdate выводить os.date('%c',lastdate)
Сообщить модератору   Записан
Inversion
Новичок
*

Репутация: +6/-0
Offline Offline

Сообщений: 17


WWW
« Ответ #27 : 17 Июнь 2011, 22:28:29 »

v2.0.2
Исправил влияние расширения на опцию «Только для GET-запросов».
При включеном расширении, отключение этого флажка не влияло на кеширование POST-запросов, они всегда не сохранялись.

* IgnoreOnceVisitedSites v2.0.2.zip (4.91 Кб - загружено 158 раз.)
Сообщить модератору   Записан
Zelen
Пользователь
**

Репутация: +2/-0
Offline Offline

Сообщений: 82


pew pew


« Ответ #28 : 21 Июнь 2011, 02:22:55 »

какое полезное расширение, спасибо Inversion
Сообщить модератору   Записан

всё будет хорошо =)
Доктор ТуамОсес
Гость
« Ответ #29 : 21 Июнь 2011, 16:05:39 »

А чо полезного-то?
Что кэшируются часто модифицируемые динамические странички?
ИМХО, глупо это: кэшировать ресурсы, которые изменяются каждые 5 минут.
ИМХО, нужно наоборот!
Сайты, которые посещаются чаще чем 3 раза в неделю НЕ кэшировать.
Так как это как правило всякие там форумы, вконтакте-ру, лайвжурналы, твиккеры, факкэбуке, новостные сайты и прочая дребедень, контент которых меняется каждые 30 секунд. Поэтому смысла кэшировать их нету.

Вопрос топикстартеру!
А можете Вы доработать своё расширение так, чтобы была галка, позволяющая инвертировать логику работу расширения?

Ну чтобы можно было заставить его работать "наоборот": кэшировать РЕДКО посещаемые сайты и НЕ кэшировать сайты, которые посещаются чаще заданного предела (например, чаще чем 5 раз в день).

А?

ИМХО, там (в исходнике расширения на языке Lua) для этого потребуется пару-тройку строк поправить.
Нет?
Сообщить модератору   Записан
Avatar
Новичок
*

Репутация: +1/-0
Offline Offline

Сообщений: 1


« Ответ #30 : 25 Июнь 2011, 17:50:48 »

Спасибо за расширение.
Просьба к автору обратить внимание на работу с кириллическими доменами вида "яндекс.рф", которые продолжают кэшироваться при прямом посещении как "xn--d1acpjx3f.xn--p1ai". При переходе же по кириллическим ссылкам с других страниц кэширование не происходит, т.е. счётчик посещений по Referrer отрабатывает нормально.
Сообщить модератору   Записан
Доктор ТуамОсес
Гость
« Ответ #31 : 26 Июнь 2011, 15:01:36 »

Ну так что?
Сделаете галку "работать наоборот"?
Сообщить модератору   Записан
Доктор ТуамОсес
Гость
« Ответ #32 : 20 Июль 2011, 17:02:18 »

А?  Подмигивающий
Сообщить модератору   Записан
Inversion
Новичок
*

Репутация: +6/-0
Offline Offline

Сообщений: 17


WWW
« Ответ #33 : 20 Июль 2011, 17:16:27 »

Сейчас занят
Сообщить модератору   Записан
Доктор ТуамОсес
Гость
« Ответ #34 : 20 Июль 2011, 17:53:08 »

О'кей.
Но когда освободитесь - непременно сделайте. Ибо это очень полезная фишка будет.
Ок?
Тем более что для этого и нужно-то всего лишь подредактировать пару-тройку строчек в исходнике на Lua/
Добавлено: 20 Июля 2011, 17:48:19

А "фишка" такая. Ваше расширение отслеживает сколько раз за день посетился некоторый сайт.
И если он посетился более заданного юзером кол-ва раз - то его URL заносится в список "не сохранять в кэш". Ибо нафиг сохранять в кэш то, что из него всё равно брать не имеет смысла, так как страница на сервере обновляется каждые 30 секунд. Веселый
Сообщить модератору   Записан
Nike
Новичок
*

Репутация: +2/-0
Offline Offline

Сообщений: 19


« Ответ #35 : 12 Октябрь 2011, 03:11:37 »

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

Доктор ТуамОсес, до сих пор не понимаю смысла инверта. В кеше будет оседать горища ненужного мусора и ничего кроме него. И накой писать в кеш весь контент? Даже на постоянно обновляющихся сайтах статической информации уйма.
Сообщить модератору   Записан
Inversion
Новичок
*

Репутация: +6/-0
Offline Offline

Сообщений: 17


WWW
« Ответ #36 : 30 Ноябрь 2011, 01:23:36 »

v2.1.0
- сделана поддержка кириллических доменов вида "яндекс.рф"
- добавлен вывод даты последнего визита в читабельном виде в окне «Настройки расширения»

Спасибо Михаилу и Аватару за замечания.

Осторожно, при обновлении не замените свою базу и конфиг.

Доктор ТуамОсес, если Вам нужен описанный специфический функционал:
Найдите в исходнике строчку 325: "if visits < hc.get_global_table_item(g_name, 'ini_visitsCountToStartCache') then"
и поменяйте "<" на ">".
Специальной версии или флажка не будет.

UPD
Разместил исходник расширения на GitHub’е — https://github.com/Inversion-des/IgnoreOnceVisitedSites
Если будут исправления/дополнения — можно собирать там.


* IgnoreOnceVisitedSites v2.1.0.zip (5.75 Кб - загружено 166 раз.)
« Последнее редактирование: 30 Ноябрь 2011, 01:57:52 от Inversion » Сообщить модератору   Записан
Andrey_04.05
Новичок
*

Репутация: +3/-0
Offline Offline

Сообщений: 18


« Ответ #37 : 18 Апрель 2013, 15:06:31 »

Видел на форуме идеи о вычислении т.н. "рейтинга" файлов. Типа чем чаще используется, чем выше рейтинг, и при очистке удалять самые "нерейтинговые". По-моему, это очень верное направление, только нужно его как-то воплотить. Если хранить информацию о дате и времени обращения к каждому файлу, получится весьма затратно, но можно периодически сбрасывать статистику одним файлом на диск, и обращаться ко всем таким файлам статистики только при операциях очищения кеша (раз в месяц, например. Ну здесь, конечно, зависит от скорости заполнения кеша. Но в любом случае не часто). Я же верно понимаю, что расширение "IgnoreOnceVisitedSites" занимается практически тем же, только на уровне доменов, и реализовать похожее расширение, но на уровне файлов, не сложно?
Сообщить модератору   Записан
zakoul
Старожил
****

Репутация: +13/-2
Offline Offline

Сообщений: 326


« Ответ #38 : 19 Апрель 2013, 00:05:10 »

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

Т.е. создать еще один .txt файл и в нем что то типа такого:
site.ru 1 - кэшировать с первого посещения

или же:
site.ru 0 - никогда не кэшировать
Хотя последнее наверно лишнее, ведь запретить кэшировать можно в белом списке НС.

Отдельный файл с исключениями думаю будет полезен.
« Последнее редактирование: 19 Апрель 2013, 01:29:50 от zakoul » Сообщить модератору   Записан
suz191
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 14


« Ответ #39 : 20 Апрель 2013, 04:19:05 »

Кстати установил и тоже захотелось именно белый список Улыбка
Сообщить модератору   Записан
Страниц: 1 [2] 3  Все   Вверх
  Отправить эту тему    Печать  

 
Перейти в: