Главная
Форум
Контакты
Купить
Поддержи проект
Поиск
Искать:
Расширенный поиск
[Закрыть]
Правила форума
Войти
Регистрация
Russian
English
HandyCache форум
Главная категория
»
Дополнения, плагины
»
IgnoreOnceVisitedSites — помогает кэшировать с умом, экономя ресурс HDD/SSD
Имя пользователя:
1 час
1 день
1 неделя
1 месяц
Навсегда
Пароль:
Страниц:
1
2
3
[
Все
]
Вниз
« предыдущая тема
следующая тема »
Отправить эту тему
Печать
Автор
Тема: IgnoreOnceVisitedSites — помогает кэшировать с умом, экономя ресурс HDD/SSD (Прочитано 50216 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Inversion
Новичок
Репутация: +6/-0
Offline
Сообщений: 17
IgnoreOnceVisitedSites — помогает кэшировать с умом, экономя ресурс HDD/SSD
«
:
07 мая 2011, 18:40:02 »
IgnoreOnceVisitedSites — расширение HC которое помогает не кэшировать сайты, на которые Вы, скорее всего, больше не зайдёте, или же заходите, но уж очень редко. Таким образом уменьшается количество мертвого груза и экономится ресурс дисковой подсистемы.
О проблеме кэширования файлов всех подряд сайтов, которые я посещаю, я задумывался и ранее, проводя регулярные чистки в кэше HC, но когда у меня появился SSD диск в качестве основного, вопрос встал значительно серьезнее. Как Вы знаете, эти диски имеют ограниченный ресурс циклов перезаписи ячеек памяти, и для меня стало очень важно настроить HC так, чтобы он старался кэшировать только то, что более вероятно будет запрашиваться в будущем.
Исходя из этой логики, я решил, что разумно будет кэшировать регулярно посещаемые сайты и стараться избегать кэширования множества сайтов, который я открываю всего раз в жизни, например при просматривании сайтов из результатов поиска.
В результате я попробовал написать это расширение, которое делает следующее:
1) Считает количество визитов на сайт;
2) Если по истории сайт посещается регулярно — для него включается кэширование. Первых пару визитов абсолютно ничего не кэшируется для нового сайта.
Технические особенности:
- Если на странице регулярно посещаемого сайта используются файлы из другого домена (например картинки хостятся на специальном сервисе), то такие материалы также будут закэшированы. Это работает через проверку Referrer в запросах.
- Игнорируются запроси на получение favicon-иконки сайтов. Множество таких запросов делается со страниц результатов поиска Google/Яндекс. Такое игнорирование сделано, чтобы не считать такой запрос за визит на сайт и, соответственно, не кэшировать большое множество таких иконок.
- На вкладке Монитор, в колонке Правила, появятся поясняющие записи:
New domain: domain.com
Checking referer (domain.com) - Visited 1/3
Referrer handycache.ru - Visited often, З.3
Skipping favicon request
Настройки
(v1.0.0 — значения можно подправить в исходнике, в специальном блоке Config; v2.0.x — через кнопку «Настройки расширения»):
- Сайт засчитывается в "регулярно посещаемые" после 3 визитов и тогда он начинает кэшироваться.
- Визитом считается запрос к домену, если со времени засчитанного предыдущего визита прошло 3 дня и более. Часто можно 2-3 дня просматривать сайт (в таком промежутке времени прекрасно справляется кэш браузера), и после этого на него не возвращаться, и чтобы не насчитать за это время 3 визита и не зачислить сайт в регулярно посещаемые, сделана проверка на минимальный интервал между визитами.
- Если со времени последнего визита на сайт прошло 2 месяца, и сайт ещё не набрал требуемого количества посещений (3 в моём случае), то такой сайт удаляется из базы, как посещаемый не регулярно. То есть, чтобы сайт начал кэшироваться, эго нужно посетить минимум 3 раза с интервалом не более 2 месяцев. А кратчайшей же строк зачисления в "регулярные" — 3 визита с интервалом не менее 3 дня (или же найти соответствующий домен в базе и подправить количество посещений ;) — точнее, найти файл с именем домена и сделать его размер равным 2 байта, исходя из организации базы)
Результаты
По результатам почти полугода использования этого расширения могу сказать, что эффективность использование кэша по статистике совсем не ухудшилась, а вот размер кэша на диске уже не разбухает так сильно, как ранее, и чистить теперь уже не так сильно необходимо. Еще исчезло неприятное ощущение, при открытии множества новых сайтов из результатов поиска, с мыслями: "и всё это сейчас пишется на диск :(". Ну и за свой SSD я теперь более спокоен, что не расходую его ресурс слишком сильно :)
Установка
v1.0.0
Файл IgnoreOnceVisitedSites.lua должен находиться в папке Extensions, для работы ему нужна папка с именем "IgnoreOnceVisitedSites DB". То есть нужно распаковать содержимое архива в папку Extensions и установить расширение через HC. Расширение должно находится прямо в папке Extensions, не в подпапке.
Файл lfs.dll (нужен для файловых операций) должен находится в папке HC (на одном уровне с HandyCache.exe и lua5.1.dll)
v2.0.1
Распаковать архив в папку Extensions и установить расширение.
История исправлений, которые были внесены благодаря участникам форума.
v2.0.0
(переписано было практически всё)
- Статистика больше не базируется на файлах (больше нет проверки существования, размера, даты модификации, писания в файл при обработке запроса)
- Статистика хранится в IgnoreOnceVisitedSitesDB.txt, конфиг в IgnoreOnceVisitedSites.ini
- Сделан UI для настроек и просмотра статистики с сортировкой по домену. Изменить настройки теперь можно через кнопку «Настройки расширения» (находится справа от списка установленных расширений). В значениях можно указывать не только целые числа, но и вида: 0.5, 2.5
- Работает автоматическое сохранение статистики каждый час, а также при завершении работы
- lfs.dll больше не используется
v2.0.1
- расширения теперь находит свои файлы, если поместить его в отдельную папку
- улучшена обработка запросов, теперь расширение не вызывается, если запрос берется из кэша, или был блокирован
- строки, которые расширение выводит в колонке "Правила", теперь не должны затирать сообщение от других расширений
- сокращено сообщение о проверке Referrer в мониторе
- добавлено удаление глобальных переменных при закрытии расширения
v2.1.0
- сделана поддержка кириллических доменов вида "яндекс.рф"
- добавлен вывод даты последнего визита в читабельном виде в окне «Настройки расширения»
IgnoreOnceVisitedSites v1.0.0.zip
(10.31 Кб - загружено 157 раз.)
IgnoreOnceVisitedSites v2.1.0.zip
(5.75 Кб - загружено 472 раз.)
«
Последнее редактирование: 30 ноября 2011, 14:02:04 от DenZzz
»
Сообщить модератору
Записан
sunserg10
Beta tester
Репутация: +7/-0
Offline
Сообщений: 322
Re: IgnoreOnceVisitedSites — помогает кэшировать с умом, экономя ресурс HDD/SSD
«
Ответ #1 :
07 мая 2011, 20:20:29 »
Inversion
Где сохраняется счетчик посещений, если HC выгружается /при выключении ПК/?
Добавлено: 07 Мая 2011, 20:00:16
Разобрался.
Код:
--conf_daysBetweenVisits = 20 -- 20 seconds for testing
Сообщить модератору
Записан
демон
Новичок
Репутация: +0/-0
Offline
Сообщений: 10
Re: IgnoreOnceVisitedSites — помогает кэшировать с умом, экономя ресурс HDD/SSD
«
Ответ #2 :
07 мая 2011, 23:34:29 »
плохо устроено расширение - нужо все кешировать ипотом выводить список сайтов посещенных мало раз для удаления
Сообщить модератору
Записан
alex77
Старожил
Репутация: +11/-1
Offline
Сообщений: 482
Re: IgnoreOnceVisitedSites — помогает кэшировать с умом, экономя ресурс HDD/SSD
«
Ответ #3 :
08 мая 2011, 04:54:23 »
касаемо второго файла lfs.dll
тут обнаружилось, что он у меня уже есть его размер - 12800 байт (12,5 Кбайт)
К сожалению, вспомнить почему и из-за чего ставил уже не могу.
его нужно заменить или расширение сможет работать с текущим?
Прикрепил его
lfs.dll
(12.5 Кб - загружено 153 раз.)
Сообщить модератору
Записан
Inversion
Новичок
Репутация: +6/-0
Offline
Сообщений: 17
Re: IgnoreOnceVisitedSites — помогает кэшировать с умом, экономя ресурс HDD/SSD
«
Ответ #4 :
08 мая 2011, 11:09:42 »
Цитата: демон от 07 мая 2011, 23:34:29
плохо устроено расширение - нужо все кешировать ипотом выводить список сайтов посещенных мало раз для удаления
Мне как раз такой сценарий не подходит. При таком использовании не экономится ресурс SSD.
Цитата: alex77 от 08 мая 2011, 04:54:23
касаемо второго файла lfs.dll
...
его нужно заменить или расширение сможет работать с текущим?
Попробовал Ваш файл — работает и с ним.
Сообщить модератору
Записан
демон
Новичок
Репутация: +0/-0
Offline
Сообщений: 10
Re: IgnoreOnceVisitedSites — помогает кэшировать с умом, экономя ресурс HDD/SSD
«
Ответ #5 :
08 мая 2011, 11:31:43 »
Цитата: Inversion от 08 мая 2011, 11:09:42
Мне как раз такой сценарий не подходит. При таком использовании не экономится ресурс SSD.
но зато удобно кеш чистить
Сообщить модератору
Записан
alex77
Старожил
Репутация: +11/-1
Offline
Сообщений: 482
Re: IgnoreOnceVisitedSites — помогает кэшировать с умом, экономя ресурс HDD/SSD
«
Ответ #6 :
08 мая 2011, 12:39:25 »
Цитата: Inversion от 08 мая 2011, 11:09:42
Попробовал Ваш файл — работает и с ним.
тогда остается понять, в чем же различие? и какой все же лучше?)
Сообщить модератору
Записан
Михаил
Модератор
Репутация: +337/-14
Offline
Сообщений: 5513
Re: IgnoreOnceVisitedSites — помогает кэшировать с умом, экономя ресурс HDD/SSD
«
Ответ #7 :
09 мая 2011, 10:38:12 »
Inversion
Дополнение полезное. Спасибо.
При совершенствовании посмотрите, плиз, в сторону отказа от файловых операций при обработке запросов.
Сообщить модератору
Записан
Inversion
Новичок
Репутация: +6/-0
Offline
Сообщений: 17
Re: IgnoreOnceVisitedSites — помогает кэшировать с умом, экономя ресурс HDD/SSD
«
Ответ #8 :
09 мая 2011, 10:47:16 »
Цитата: Михаил от 09 мая 2011, 10:38:12
При совершенствовании посмотрите, плиз, в сторону отказа от файловых операций при обработке запросов.
Увы, я не нашел иного способа сохранять информацию между запросами. Если кто знает, подскажите пожалуйста.
Сообщить модератору
Записан
Михаил
Модератор
Репутация: +337/-14
Offline
Сообщений: 5513
Re: IgnoreOnceVisitedSites — помогает кэшировать с умом, экономя
«
Ответ #9 :
09 мая 2011, 10:54:51 »
Данные (домен/дата посещения/число посещений) сохраняем в одном файле. При инициализации расширения читаем этот файл в таблицу с идентификацией элементов по имени домена, записываем эту таблицу в память (hc.set_global). В обработчике каждого запроса работаем только с этой таблицей (hc.get_global_table_item/hc.set_global_table_item). При завершении работы расширения (можно и изредка в ходе работы) сохраняем эту таблицу в файл.
Сообщить модератору
Записан
Inversion
Новичок
Репутация: +6/-0
Offline
Сообщений: 17
Re: IgnoreOnceVisitedSites — помогает кэшировать с умом, экономя ресурс HDD/SSD
«
Ответ #10 :
09 мая 2011, 11:04:43 »
Михаил
Вот спасибо! Я попробую.
Добавлено: 09 Мая 2011, 10:56:57
Цитата: alex77 от 08 мая 2011, 12:39:25
тогда остается понять, в чем же различие? и какой все же лучше?)
Если просматривать информацию о файле плагином Fileinfo в TotalCommander, то всплывают 2 даты в разделе FILE HEADER:
Для моего файла — Time Date Stamp: 4B4FE3A3h -> 15/01/2010 05:40:19
Для Вашего — Time Date Stamp: 4988A9F7h -> 03/02/2009 22:32:55
Это точно не даты создания/модификации файла, так что можно предположить, что эти даты как-то связаны со сборкой файла, и более поздняя дата указывает просто на более позднюю сборку.
«
Последнее редактирование: 09 мая 2011, 11:09:37 от Inversion
»
Сообщить модератору
Записан
alex77
Старожил
Репутация: +11/-1
Offline
Сообщений: 482
Re: IgnoreOnceVisitedSites — помогает кэшировать с умом, экономя ресурс HDD/SSD
«
Ответ #11 :
09 мая 2011, 11:32:59 »
Inversion
понятно
Сообщить модератору
Записан
Inversion
Новичок
Репутация: +6/-0
Offline
Сообщений: 17
Re: IgnoreOnceVisitedSites — помогает кэшировать с умом, экономя ресурс HDD/SSD
«
Ответ #12 :
10 мая 2011, 02:32:34 »
Результаты работы по наставлению
Михаила
:
v2.0.0
(переписано было практически всё)
- Статистика больше не базируется на файлах (больше нет проверки существования, размера, даты модификации, писания в файл при обработке запроса)
- Статистика хранится в IgnoreOnceVisitedSitesDB.txt, конфиг в IgnoreOnceVisitedSites.ini
- Сделан UI для настроек и просмотра статистики с сортировкой по домену. Изменить настройки теперь можно через кнопку «Настройки расширения» (находится справа от списка установленных расширений). В значениях можно указывать не только целые числа, но и вида: 0.5, 2.5
- Работает автоматическое сохранение статистики каждый час, а также при завершении работы
- lfs.dll больше не используется
Оказалось, что я руководствовался файлом HCExtensions.html за 05.2009, а там ещё не были доступны set_global-функции. Вот почему всё было устроено так странно изначально.
Помогите, пожалуйста, протестировать новую версию. Если кто может, посмотрите в код, там всего 300 строчек с комментариями.
Также, подскажите пожалуйста, возможно ли здесь изменить первое сообщение темы? Или лучше бы даже удалить эту тему и создать новую с описанием уже новой версии.
Всем спасибо!
Отдельное спасибо Михаилу, за то что указал на недостаток и сразу предложил путь к решению.
IgnoreOnceVisitedSites.zip
(4.73 Кб - загружено 176 раз.)
Сообщить модератору
Записан
DIGGER
Старожил
Репутация: +14/-3
Offline
Сообщений: 312
Re: IgnoreOnceVisitedSites — помогает кэшировать с умом, экономя ресурс HDD/SSD
«
Ответ #13 :
10 мая 2011, 04:34:51 »
Цитировать
возможно ли здесь изменить первое сообщение темы?
Только модераторам/админам. Недостаток движка форума.
Спасибо за плагин. +
Протестирую завтра на работе (по свободе) и отпишусь.
Сообщить модератору
Записан
DenZzz
Модератор
Репутация: +179/-11
Offline
Сообщений: 5589
Re: IgnoreOnceVisitedSites — помогает кэшировать с умом, экономя ресурс HDD/SSD
«
Ответ #14 :
10 мая 2011, 14:00:14 »
Inversion
Я по привычке положил файлы расширения IgnoreOnceVisitedSites в отдельную папку внутри Extensions, чтобы был порядок в общем каталоге, но расширение не смогло найти свои файлы!
Жестко прописывать g_name и g_extensionRoot внутри самого расширения я считаю неправильным. Зачем, если их можно выделить из переменной hc.script_name:
Код:
g_name = re.find(hc.script_name, [[([^\\]+)\.lua$]], 1)
g_extensionRoot = re.replace(hc.script_name, g_name..[[\.lua$]], '')
Добавлено: 10 Мая 2011, 13:50:35
Цитата: Inversion от 10 мая 2011, 02:32:34
Или лучше бы даже удалить эту тему и создать новую с описанием уже новой версии.
Удалять не нужно, пусть остается для истории. Вдруг кому-то больше понравилась старая версия...
Если нужно, я могу поправить первый пост. Напиши как.
Вообще, свежее описание работы расширения и последние изменения можно подробно описывать в отдельном файле и класть его в архив вместе с новой версией расширения, а на форуме приводить только краткие анонсы последних изменений.
«
Последнее редактирование: 10 мая 2011, 15:46:59 от DenZzz
»
Сообщить модератору
Записан
Михаил
Модератор
Репутация: +337/-14
Offline
Сообщений: 5513
Re: IgnoreOnceVisitedSites — помогает кэшировать с умом, экономя
«
Ответ #15 :
10 мая 2011, 15:22:48 »
Спасибо за v.2, стало на порядок лучше. Есть еще несколько пожеланий:
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
4. В обработчике Destroy надо очищать все глобальные переменные, иначе они останутся висеть в памяти. К примеру, так:
hc.set_global(g_name)
5. В довесок к тому, о чем постом выше писал
DenZzz
: текущая системная папка может быть любой, не обязательно та, откуда запущено расширение. Поэтому чтение и запись файлов будут или выдавать ошибку, или производиться в самые неожиданные места диска. Нужно использовать hc.script_name.
6. В монитор хорошо бы выводить только необходимый минимум информации, не забивая все остальное.
«
Последнее редактирование: 10 мая 2011, 15:37:07 от Михаил
»
Сообщить модератору
Записан
Inversion
Новичок
Репутация: +6/-0
Offline
Сообщений: 17
Re: IgnoreOnceVisitedSites — помогает кэшировать с умом, экономя ресурс HDD/SSD
«
Ответ #16 :
10 мая 2011, 22:47:04 »
Ясно. Попробую еще поработать.
Сообщить модератору
Записан
igorek
Новичок
Репутация: +6/-0
Offline
Сообщений: 36
Re: IgnoreOnceVisitedSites — помогает кэшировать с умом, экономя ресурс HDD/SSD
«
Ответ #17 :
14 мая 2011, 21:59:05 »
Я бы предложил немного изменить алгоритм кэширования сайтов.
При первом посещении сайта выводить краткое сообщение в браузере:
Кэшировать данный домен example.site? И кнопку Да или Нет.
А дальше уже по вашему алгоритму, без счетчиков.
Бывают сайты которые полезно кэшировать, например некоторые форумы, ютуб,
а сайты типа rbc.ru не имеют смысла кэшировать, хотя могут посешать многократно.
Сообщить модератору
Записан
DIGGER
Старожил
Репутация: +14/-3
Offline
Сообщений: 312
Re: IgnoreOnceVisitedSites — помогает кэшировать с умом, экономя ресурс HDD/SSD
«
Ответ #18 :
14 мая 2011, 23:14:12 »
Цитировать
При первом посещении сайта выводить краткое сообщение в браузере
Категорически против, я этого своей маме не осилю пояснить. Или же делать, но опционально.
Сообщить модератору
Записан
Доктор ТуамОсес
Гость
Re: IgnoreOnceVisitedSites — помогает кэшировать с умом, экономя ресурс HDD/SSD
«
Ответ #19 :
27 мая 2011, 23:09:06 »
Цитата: Inversion от 07 мая 2011, 18:40:02
IgnoreOnceVisitedSites — расширение HC которое помогает не кэшировать сайты, на которые Вы, скорее всего, больше не зайдёте, или же заходите, но уж очень редко. Таким образом уменьшается количество мертвого груза и экономится ресурс дисковой подсистемы.
Позволю себе не согласиться.
Как раз редко посещаемые сайты могут содержать уникальную/эксклюзивную/важную информацию.
А что представляют собой сайты, которые посещаются регулярно и часто?
Это всякие форумы, сайты новостей и т.п. Таким образом они содержат кучу флуда, троллинга и т.п. мусора - т.е. они содержат какую-то сиюминутную информацию, про которую можно сказать "прочитал, выбросил и забыл"
Чтобы моя мысль была более понятна, проиллюстрирую её конкретным примером "из жизни".
Я, к примеру, не посещаю каждый день сайт, где описывается как Эйнштейн вывел свои формулы теории относительности. Даже раз в месяц не посещаю. А информация, содержащаяся на этом сайте, для меня очень важна
В то же время форумы на ixbt, sources.ru, и прочие я посещаю ежедневно по несколько раз (чтобы пофлудить/потроллить о политике, кино, сексе и т.п.). Но информацию с них я при всём желании не смогу назвать важной/ценной.
В связи с этим я считаю, что нужно кшировать ВСЕ файлы.
Но сделать два кэша: для мусора (особенно часто посещаемых сайтов) и для важной информации (редко посещаемых сайтов).
Это будет удобно и для Архивариуса 3000. Чтобы найти о чём Вы троллили неделю назад Вы ищите в кэше для мусора. А если Вы ищите ответ на какой-то серьёзный вопрос, то ищете архивариусом 300 в другом кэше.
Добавлено: 27 Мая 2011, 22:59:07
Цитата: Inversion от 07 мая 2011, 18:40:02
и экономится ресурс дисковой подсистемы.
О проблеме кэширования файлов всех подряд сайтов, которые я посещаю, я задумывался и ранее, проводя регулярные чистки в кэше HC, но когда у меня появился SSD диск в качестве основного, вопрос встал значительно серьезнее. Как Вы знаете, эти диски имеют ограниченный ресурс циклов перезаписи ячеек памяти, и для меня стало очень важно настроить HC так, чтобы он старался кэшировать только то, что более вероятно будет запрашиваться в будущем.
Исходя из этой логики, я решил, что разумно будет кэшировать регулярно посещаемые сайты и стараться избегать кэширования множества сайтов, который я открываю всего раз в жизни, например при просматривании сайтов из результатов поиска.
Странная у Вас какая-то логика.
Вы полагаете, что основной вклад в быстрый износ харда/SSD
вносят редко посещаемые, а значит и редко записываемые на хард/SSD сайты?
Т.е. сайт, который Вы закэшировали один раз за год вызовет бОлший износ, чем форум, который Вы посетили 150 000 раз за год и каждый раз кэшировали на хард/SSD?
«
Последнее редактирование: 27 мая 2011, 23:19:17 от Доктор ТуамОсес
»
Сообщить модератору
Записан
DIGGER
Старожил
Репутация: +14/-3
Offline
Сообщений: 312
Re: IgnoreOnceVisitedSites — помогает кэшировать с умом, экономя ресурс HDD/SSD
«
Ответ #20 :
28 мая 2011, 12:33:05 »
Цитировать
…чем форум, который Вы посетили 150 000 раз за год и каждый раз кэшировали на хард/SSD?
Наверно я делаю что-то не так, потому что у меня только при первом посещении идёт запись в кэш.
Да и вообще: не хотите не используйте дополнение.
Сообщить модератору
Записан
Доктор ТуамОсес
Гость
Re: IgnoreOnceVisitedSites — помогает кэшировать с умом, экономя ресурс HDD/SSD
«
Ответ #21 :
28 мая 2011, 12:50:44 »
Цитата: DIGGER от 28 мая 2011, 12:33:05
Наверно я делаю что-то не так, потому что у меня только при первом посещении идёт запись в кэш.
Нет.
Наверное я
"что-то делаю не так"
™
Потому что когда на форумах странички обновляются/изменяются (а изменяются они зачастую каждые 5 минут), то мне (чтобы файлы в кэше соответствовали файлам на сервере) приходится их заново записывать в кэш.
Наверное я что-то делаю не правильно и существует способ (про который не известно мне и известно Вам) обновлять файлы в кэше не перезаписывая их.
Откройте секрет: как Вы это делаете?
Сообщить модератору
Записан
DIGGER
Старожил
Репутация: +14/-3
Offline
Сообщений: 312
Re: IgnoreOnceVisitedSites — помогает кэшировать с умом, экономя ресурс HDD/SSD
«
Ответ #22 :
28 мая 2011, 12:58:35 »
Цитировать
…обновлять файлы в кэше не перезаписывая их
тю-тю?
Мыслите шире:
я не пишу HTML страницу форума в кэш - она же изменяется каждые две минуты! Смысл её кэшировать? Кэшировать нужно с умом, а не всё подряд.
Сообщить модератору
Записан
Доктор ТуамОсес
Гость
Re: IgnoreOnceVisitedSites — помогает кэшировать с умом, экономя ресурс HDD/SSD
«
Ответ #23 :
28 мая 2011, 13:27:21 »
Цитата: DIGGER от 28 мая 2011, 12:58:35
тю-тю?
Мыслите шире:
я не пишу HTML страницу форума в кэш - она же изменяется каждые две минуты! Смысл её кэшировать? Кэшировать нужно с умом, а не всё подряд.
Что же Вы тогда кэшируете?
Если HTML-страницы Вы не кэшируете.
Редко посещаемые сайты - тоже не кэшируете.
Только редко изменяемые картинки и флэшки с часто посещаемых страниц?
А как тогда я буду осуществлять поиск по кэшу с помощью какого-нибудь десктоп зеарцха если я буду не сохранять в кэш HTML файлы, в которых и храниться эта информация?
Сообщить модератору
Записан
DIGGER
Старожил
Репутация: +14/-3
Offline
Сообщений: 312
Re: IgnoreOnceVisitedSites — помогает кэшировать с умом, экономя ресурс HDD/SSD
«
Ответ #24 :
29 мая 2011, 01:18:44 »
Цитировать
А как тогда я буду осуществлять поиск по кэшу …
Что Вы ищете, конкретно?
Сообщить модератору
Записан
Inversion
Новичок
Репутация: +6/-0
Offline
Сообщений: 17
IgnoreOnceVisitedSites v2.0.1
«
Ответ #25 :
01 июня 2011, 10:37:58 »
Цитата: igorek от 14 мая 2011, 21:59:05
Я бы предложил немного изменить алгоритм кэширования сайтов.
При первом посещении сайта выводить краткое сообщение в браузере:
Кэшировать данный домен example.site? И кнопку Да или Нет.
А дальше уже по вашему алгоритму, без счетчиков.
В базовом сценарии использования расширения, а именно, когда открывается
много новых сайтов
при просмотре результатов поиска, такое сообщение будет раздражать.
Цитата: igorek от 14 мая 2011, 21:59:05
Бывают сайты которые полезно кэшировать, например некоторые форумы, ютуб,
а сайты типа rbc.ru не имеют смысла кэшировать, хотя могут посешать многократно.
Для решения таких задач лучше подходят белые списки и правила в разделе Запись в кэш. Но одно другому не мешает. Я так и пользуюсь и тем и тем.
Цитата: Доктор ТуамОсес от 27 мая 2011, 23:09:06
Позволю себе не согласиться.…
Ваше несогласие строится на том, что Вам нужно кэшировать HTML каждой посещаемой странички. А это совсем другая задача и другая стратегия кэширования.
Данное расширение помогает только в стратегии кэширования статики (картинки, стили, скрипты, Flash). Стратегия используется для ускорения загрузки страниц сайтов при последующих посещения за счет уменьшения количества запросов к серверу и времени загрузки больших элементов страницы.
Цитата: Доктор ТуамОсес от 27 мая 2011, 23:09:06
Странная у Вас какая-то логика.
Вы полагаете, что основной вклад в быстрый износ харда/SSD
вносят редко посещаемые, а значит и редко записываемые на хард/SSD сайты?
Имеется ввиду большое множество таких сайтов, которые один раз открываются, анализируются и закрываются. Некоторые из таких сайтов могут иметь тонны картинок и прочей статики.
Цитата: DenZzz от 10 мая 2011, 14:00:14
Жестко прописывать g_name и g_extensionRoot внутри самого расширения я считаю неправильным
Согласен. Исправил.
Цитата: Михаил от 10 мая 2011, 15:22:48
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 Кб - загружено 169 раз.)
Сообщить модератору
Записан
Михаил
Модератор
Репутация: +337/-14
Offline
Сообщений: 5513
Re: IgnoreOnceVisitedSites — помогает кэшировать с умом, экономя
«
Ответ #26 :
02 июня 2011, 08:05:27 »
v2.0.1
Просто отлично! Спасибо.
PS информацию о времени последнего визита, выводимую в окошке, можно форматировать в приемлемый для глаза вид. Например, вместо lastdate выводить os.date('%c',lastdate)
Сообщить модератору
Записан
Inversion
Новичок
Репутация: +6/-0
Offline
Сообщений: 17
IgnoreOnceVisitedSites v2.0.2
«
Ответ #27 :
17 июня 2011, 22:28:29 »
v2.0.2
Исправил влияние расширения на опцию «Только для GET-запросов».
При включеном расширении, отключение этого флажка не влияло на кеширование POST-запросов, они всегда не сохранялись.
IgnoreOnceVisitedSites v2.0.2.zip
(4.91 Кб - загружено 194 раз.)
Сообщить модератору
Записан
Zelen
Пользователь
Репутация: +2/-0
Offline
Сообщений: 82
pew pew
Re: IgnoreOnceVisitedSites — помогает кэшировать с умом, экономя ресурс HDD/SSD
«
Ответ #28 :
21 июня 2011, 02:22:55 »
какое полезное расширение, спасибо Inversion
Сообщить модератору
Записан
всё будет хорошо =)
Доктор ТуамОсес
Гость
Re: IgnoreOnceVisitedSites — помогает кэшировать с умом, экономя ресурс HDD/SSD
«
Ответ #29 :
21 июня 2011, 16:05:39 »
А чо полезного-то?
Что кэшируются часто модифицируемые динамические странички?
ИМХО, глупо это: кэшировать ресурсы, которые изменяются каждые 5 минут.
ИМХО, нужно наоборот!
Сайты, которые посещаются чаще чем 3 раза в неделю НЕ кэшировать.
Так как это как правило всякие там форумы, вконтакте-ру, лайвжурналы, твиккеры, факкэбуке, новостные сайты и прочая дребедень, контент которых меняется каждые 30 секунд. Поэтому смысла кэшировать их нету.
Вопрос топикстартеру!
А можете Вы доработать своё расширение так, чтобы была галка, позволяющая инвертировать логику работу расширения?
Ну чтобы можно было заставить его работать "наоборот": кэшировать РЕДКО посещаемые сайты и НЕ кэшировать сайты, которые посещаются чаще заданного предела (например, чаще чем 5 раз в день).
А?
ИМХО, там (в исходнике расширения на языке Lua) для этого потребуется пару-тройку строк поправить.
Нет?
Сообщить модератору
Записан
Avatar
Новичок
Репутация: +1/-0
Offline
Сообщений: 1
Re: IgnoreOnceVisitedSites — помогает кэшировать с умом, экономя ресурс HDD/SSD
«
Ответ #30 :
25 июня 2011, 17:50:48 »
Спасибо за расширение.
Просьба к автору обратить внимание на работу с кириллическими доменами вида "
яндекс.рф
", которые продолжают кэшироваться при прямом посещении как "xn--d1acpjx3f.xn--p1ai". При переходе же по кириллическим ссылкам с других страниц кэширование не происходит, т.е. счётчик посещений по Referrer отрабатывает нормально.
Сообщить модератору
Записан
Доктор ТуамОсес
Гость
Re: IgnoreOnceVisitedSites — помогает кэшировать с умом, экономя ресурс HDD/SSD
«
Ответ #31 :
26 июня 2011, 15:01:36 »
Ну так что?
Сделаете галку "работать наоборот"?
Сообщить модератору
Записан
Доктор ТуамОсес
Гость
Re: IgnoreOnceVisitedSites — помогает кэшировать с умом, экономя ресурс HDD/SSD
«
Ответ #32 :
20 июля 2011, 17:02:18 »
А?
Сообщить модератору
Записан
Inversion
Новичок
Репутация: +6/-0
Offline
Сообщений: 17
Re: IgnoreOnceVisitedSites — помогает кэшировать с умом, экономя ресурс HDD/SSD
«
Ответ #33 :
20 июля 2011, 17:16:27 »
Сейчас занят
Сообщить модератору
Записан
Доктор ТуамОсес
Гость
Re: IgnoreOnceVisitedSites — помогает кэшировать с умом, экономя ресурс HDD/SSD
«
Ответ #34 :
20 июля 2011, 17:53:08 »
О'кей.
Но когда освободитесь - непременно сделайте. Ибо это очень полезная фишка будет.
Ок?
Тем более что для этого и нужно-то всего лишь подредактировать пару-тройку строчек в исходнике на Lua/
Добавлено: 20 Июля 2011, 17:48:19
А "фишка" такая. Ваше расширение отслеживает сколько раз за день посетился некоторый сайт.
И если он посетился более заданного юзером кол-ва раз - то его URL заносится в список "не сохранять в кэш". Ибо нафиг сохранять в кэш то, что из него всё равно брать не имеет смысла, так как страница на сервере обновляется каждые 30 секунд.
Сообщить модератору
Записан
Nike
Новичок
Репутация: +2/-0
Offline
Сообщений: 19
Re: IgnoreOnceVisitedSites — помогает кэшировать с умом, экономя ресурс HDD/SSD
«
Ответ #35 :
12 октября 2011, 03:11:37 »
Большое спасибо автору за расширение, в таком виде оно чрезвычайно полезно, поставил везде, где стоит хендикеш.
Доктор ТуамОсес
, до сих пор не понимаю смысла инверта. В кеше будет оседать горища ненужного мусора и ничего кроме него. И накой писать в кеш весь контент? Даже на постоянно обновляющихся сайтах статической информации уйма.
Сообщить модератору
Записан
Inversion
Новичок
Репутация: +6/-0
Offline
Сообщений: 17
Обновление
«
Ответ #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 Кб - загружено 203 раз.)
«
Последнее редактирование: 30 ноября 2011, 01:57:52 от Inversion
»
Сообщить модератору
Записан
Andrey_04.05
Новичок
Репутация: +3/-0
Offline
Сообщений: 18
Re: IgnoreOnceVisitedSites — помогает кэшировать с умом, экономя ресурс HDD/SSD
«
Ответ #37 :
18 апреля 2013, 15:06:31 »
Видел на форуме идеи о вычислении т.н. "рейтинга" файлов. Типа чем чаще используется, чем выше рейтинг, и при очистке удалять самые "нерейтинговые". По-моему, это очень верное направление, только нужно его как-то воплотить. Если хранить информацию о дате и времени обращения к каждому файлу, получится весьма затратно, но можно периодически сбрасывать статистику одним файлом на диск, и обращаться ко всем таким файлам статистики только при операциях очищения кеша (раз в месяц, например. Ну здесь, конечно, зависит от скорости заполнения кеша. Но в любом случае не часто). Я же верно понимаю, что расширение "IgnoreOnceVisitedSites" занимается практически тем же, только на уровне доменов, и реализовать похожее расширение, но на уровне файлов, не сложно?
Сообщить модератору
Записан
zakoul
Старожил
Репутация: +13/-2
Offline
Сообщений: 326
Re: IgnoreOnceVisitedSites — помогает кэшировать с умом, экономя ресурс HDD/SSD
«
Ответ #38 :
19 апреля 2013, 00:05:10 »
А как на счет того, что бы ввести список исключений? Т.е. для доменов в этом списке кэширование будет происходить всегда (начиная с первого визита) или же наоборот - никогда.
Т.е. создать еще один .txt файл и в нем что то типа такого:
site.ru 1 - кэшировать с первого посещения
или же:
site.ru 0 - никогда не кэшировать
Хотя последнее наверно лишнее, ведь запретить кэшировать можно в белом списке НС.
Отдельный файл с исключениями думаю будет полезен.
«
Последнее редактирование: 19 апреля 2013, 01:29:50 от zakoul
»
Сообщить модератору
Записан
suz191
Новичок
Репутация: +0/-0
Offline
Сообщений: 14
Re: IgnoreOnceVisitedSites — помогает кэшировать с умом, экономя ресурс HDD/SSD
«
Ответ #39 :
20 апреля 2013, 04:19:05 »
Кстати установил и тоже захотелось именно белый список
Сообщить модератору
Записан
zakoul
Старожил
Репутация: +13/-2
Offline
Сообщений: 326
Re: IgnoreOnceVisitedSites — помогает кэшировать с умом, экономя ресурс HDD/SSD
«
Ответ #40 :
20 апреля 2013, 05:25:16 »
Цитата: suz191 от 20 апреля 2013, 04:19:05
Кстати установил и тоже захотелось именно белый список
Думаю у каждого найдется свой список сайтов, которые точно должны попадать в кэш НС с первого захода. Можно конечно же ждать несколько дней или кол-во посещений править до нужного, но для этого сначала нужно зайти на этот сайт, изменить кол-во посещений, а для полного попадания в кэш НС нужно еще и очистить кэш браузера. Куда проще иметь заранее составленный белый список и не производить при этом лишних манипуляций для кеширования нужных сайтов.
Сообщить модератору
Записан
Inversion
Новичок
Репутация: +6/-0
Offline
Сообщений: 17
Re: IgnoreOnceVisitedSites — помогает кэшировать с умом, экономя ресурс HDD/SSD
«
Ответ #41 :
21 апреля 2013, 17:32:04 »
Цитата: Andrey_04.05 от 18 апреля 2013, 15:06:31
Видел на форуме идеи о вычислении т.н. "рейтинга" файлов. Типа чем чаще используется, чем выше рейтинг, и при очистке удалять самые "нерейтинговые". По-моему, это очень верное направление, только нужно его как-то воплотить. Если хранить информацию о дате и времени обращения к каждому файлу, получится весьма затратно, но можно периодически сбрасывать статистику одним файлом на диск, и обращаться ко всем таким файлам статистики только при операциях очищения кеша (раз в месяц, например. Ну здесь, конечно, зависит от скорости заполнения кеша. Но в любом случае не часто). Я же верно понимаю, что расширение "IgnoreOnceVisitedSites" занимается практически тем же, только на уровне доменов, и реализовать похожее расширение, но на уровне файлов, не сложно?
Теоретически не должно быть сложно, но из-за того, что количество файлов может на порядки превышать количество доменов, с которым я имел дело, может быть проблематично вести такую статистику в обычном текстовом файле. Ну и памяти при таком подходе буте расходоваться значительно больше (не десятки килобайт, а уже 10-20 MB). Тут уже сложно без хоть какой-то базы данных.
Добавлено: 21 Апрель 2013, 17:29:24
Цитата: zakoul от 19 апреля 2013, 00:05:10
А как на счет того, что бы ввести список исключений? Т.е. для доменов в этом списке кэширование будет происходить всегда (начиная с первого визита) или же наоборот - никогда.
Т.е. создать еще один .txt файл и в нем что то типа такого:
site.ru 1 - кэшировать с первого посещения
или же:
site.ru 0 - никогда не кэшировать
Хотя последнее наверно лишнее, ведь запретить кэшировать можно в белом списке НС.
Отдельный файл с исключениями думаю будет полезен.
Сейчас для этой цели можно в файле базы данных IgnoreOnceVisitedSitesDB.txt найти этот домен после первого визита (или вручную добавить аккуратно) и увеличить цифру количества визитов до Вашего значения параметра visitsCountToStartCache.
Отдельный файл был бы удобнее, но у меня нет возможности добавить такой функционал.
Сообщить модератору
Записан
Andrey_04.05
Новичок
Репутация: +3/-0
Offline
Сообщений: 18
Re: IgnoreOnceVisitedSites — помогает кэшировать с умом, экономя ресурс HDD/SSD
«
Ответ #42 :
04 июня 2013, 15:36:24 »
Очень хочется попробовать накопление статистики обращения к файлам с последующим вычислением «рейтинга». К сожалению, никогда не имел дело со скриптами ЛУА.
Уважаемый Inversion, может у Вас найдется немного времени, чтобы накидать код? Я вижу логику работы примерно так:
В настройках:
- папка для сбора статистики, (F)
- периодичность сброса статистики (TS)
При каждом обращении к файлу:
- Сохранить в памяти строку вида:
«имя файла (после преобразования URLtoFILE)» - дата и время обращения.
При достижении времени TS или при накоплении, например, 1000 строк:
- сгенерировать случайное число R
- проверить в папке F существование файла «s» + IntToStr(R) + «.txt», если есть, то шаг назад (взять другое R), если нет, то к следующему пункту:
- открыть для записи файл «s» + IntToStr(R) + «.txt», записать в него все накопленные строки.
Сообщить модератору
Записан
Inversion
Новичок
Репутация: +6/-0
Offline
Сообщений: 17
Re: IgnoreOnceVisitedSites — помогает кэшировать с умом, экономя ресурс HDD/SSD
«
Ответ #43 :
08 июня 2013, 23:49:38 »
Цитата: Andrey_04.05 от 04 июня 2013, 15:36:24
может у Вас найдется немного времени, чтобы накидать код?
Увы, сейчас никак нет.
Сообщить модератору
Записан
Andrey_04.05
Новичок
Репутация: +3/-0
Offline
Сообщений: 18
Re: IgnoreOnceVisitedSites — помогает кэшировать с умом, экономя ресурс HDD/SSD
«
Ответ #44 :
16 августа 2013, 13:48:07 »
Выдалось немного времени, попробовал накидать расширение для сбора статистики обращения к файлам. С луа абсолютно незнаком, пробовал делать по аналогии с "IgnoreOnceVisitedSites". Первый блин - по моей задумке в файл пишется имя файла целиком, вместе с путем. В моем варианте пишутся все время только пустые строки. Где-то не попал ))) И сразу второй вопрос - следом за файлом в эту же строку хочу писать дату и время обращения. Кто подскажет?
Результат моего труда:
--[[ <HCEXTENSION>
@name Statistika
@author
Andrey_04.05@mail.ru
@version 0.1
@description Собирает информацию об обращениях к файлам в текстовом виде для вычисления "рейтинга".
@event BeforeRequestHeaderSend/on_BeforeRequestHeaderSend
</HCEXTENSION> ]]
g_name = re.find(hc.script_name, [[([^\\]+)\.lua$]], 1)
g_extensionRoot = re.replace(hc.script_name, g_name..[[\.lua$]], '')
function on_BeforeRequestHeaderSend()
hc.monitor_string = hc.monitor_string ..'Test'
f = io.open(g_extensionRoot..g_name..'DB.txt', 'a')
if (f) then
f:write(hc.cache_file_name..'\n')
f:close()
else hc.put_to_log('Save failed')
hc.monitor_string = hc.monitor_string ..' Save failed'
end
end
Сообщить модератору
Записан
zakoul
Старожил
Репутация: +13/-2
Offline
Сообщений: 326
Re: IgnoreOnceVisitedSites — помогает кэшировать с умом, экономя ресурс HDD/SSD
«
Ответ #45 :
25 августа 2013, 20:49:27 »
Просьба к автору данного расширения переписать его под lua5.2
(версия 2.1.0 не работает с НС 1.0.0.469)
Сообщить модератору
Записан
Михаил
Модератор
Репутация: +337/-14
Offline
Сообщений: 5513
Re: IgnoreOnceVisitedSites — помогает кэшировать с умом, экономя ресурс HDD/SSD
«
Ответ #46 :
25 августа 2013, 21:05:38 »
У меня вроде работает.
IgnoreOnceVisitedSites.rar
(3.99 Кб - загружено 124 раз.)
Сообщить модератору
Записан
zakoul
Старожил
Репутация: +13/-2
Offline
Сообщений: 326
Re: IgnoreOnceVisitedSites — помогает кэшировать с умом, экономя ресурс HDD/SSD
«
Ответ #47 :
25 августа 2013, 21:27:27 »
Спасибо. Работает.
Сообщить модератору
Записан
zakoul
Старожил
Репутация: +13/-2
Offline
Сообщений: 326
Re: IgnoreOnceVisitedSites — помогает кэшировать с умом, экономя ресурс HDD/SSD
«
Ответ #48 :
09 сентября 2013, 23:58:05 »
Заметил одну небольшую проблему в IgnoreOnceVisitedSites. Некоторые сайты игнорируются данным расширением и НС их кэширует с первого посещения. Пример:
Набираю президент.рф (до этого на этом сайте я не был ни разу, т.е. в базе IgnoreOnceVisitedSite его нет). Смотрю в монитор НС - идет кэширование с news.kremlin.ru, в кэше НС появляются папки "президент.рф" и "news.kremlin.ru".
При этом в базе IgnoreOnceVisitedSite появляется только "президент.рф" с 1 посещением, а "news.kremlin.ru" или "kremlin.ru" в базе IgnoreOnceVisitedSite не появляется.
Как то можно исправить?
Сообщить модератору
Записан
Zork
Пользователь
Репутация: +5/-2
Offline
Сообщений: 53
Re: IgnoreOnceVisitedSites — помогает кэшировать с умом, экономя ресурс HDD/SSD
«
Ответ #49 :
10 сентября 2013, 06:02:37 »
Не вижу причин заморачиваться с ssd. У них ресурс не ниже обычных HDD. Как расширение конечно интересно, но не более того. IMXO
Сообщить модератору
Записан
Страниц:
1
2
3
[
Все
]
Вверх
Отправить эту тему
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Главная категория
-----------------------------
=> Общие вопросы
=> Новые предложения
=> Дополнения, плагины
=> Сжатие трафика
=> English forum
=> Indonesian forum
-----------------------------
Гостевая
-----------------------------
=> Гостевая
-----------------------------
Дела домашние
-----------------------------
=> Сайт и форум HandyCache
=> Курилка
© 2006-2014 HandyCache Team. Все права защищены.
Загружается...