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

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

Сообщений: 326


« Ответ #40 : 20 апреля 2013, 05:25:16 »

Кстати установил и тоже захотелось именно белый список Улыбка
Думаю у каждого найдется свой список сайтов, которые точно должны попадать в кэш НС с первого захода. Можно конечно же ждать несколько дней или кол-во посещений править до нужного, но для этого сначала нужно зайти на этот сайт, изменить кол-во посещений, а для полного попадания в кэш НС нужно еще и очистить кэш браузера. Куда проще иметь заранее составленный белый список и не производить при этом лишних манипуляций для кеширования нужных сайтов.
Сообщить модератору   Записан
Inversion
Новичок
*

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

Сообщений: 17


WWW
« Ответ #41 : 21 апреля 2013, 17:32:04 »

Видел на форуме идеи о вычислении т.н. "рейтинга" файлов. Типа чем чаще используется, чем выше рейтинг, и при очистке удалять самые "нерейтинговые". По-моему, это очень верное направление, только нужно его как-то воплотить. Если хранить информацию о дате и времени обращения к каждому файлу, получится весьма затратно, но можно периодически сбрасывать статистику одним файлом на диск, и обращаться ко всем таким файлам статистики только при операциях очищения кеша (раз в месяц, например. Ну здесь, конечно, зависит от скорости заполнения кеша. Но в любом случае не часто). Я же верно понимаю, что расширение "IgnoreOnceVisitedSites" занимается практически тем же, только на уровне доменов, и реализовать похожее расширение, но на уровне файлов, не сложно?
Теоретически не должно быть сложно, но из-за того, что количество файлов может на порядки превышать количество доменов, с которым я имел дело, может быть проблематично вести такую статистику в обычном текстовом файле. Ну и памяти при таком подходе буте расходоваться значительно больше (не десятки килобайт, а уже 10-20 MB). Тут уже сложно без хоть какой-то базы данных.
Добавлено: 21 Апрель 2013, 17:29:24

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

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

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

Отдельный файл с исключениями думаю будет полезен.

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

Отдельный файл был бы удобнее, но у меня нет возможности добавить такой функционал.
Сообщить модератору   Записан
Andrey_04.05
Новичок
*

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

Сообщений: 18


« Ответ #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 Offline

Сообщений: 17


WWW
« Ответ #43 : 08 июня 2013, 23:49:38 »

может у Вас найдется немного времени, чтобы накидать код?
Увы, сейчас никак нет.
Сообщить модератору   Записан
Andrey_04.05
Новичок
*

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

Сообщений: 18


« Ответ #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 Offline

Сообщений: 326


« Ответ #45 : 25 августа 2013, 20:49:27 »

Просьба к автору данного расширения переписать его под lua5.2
(версия 2.1.0 не работает с НС 1.0.0.469)
Сообщить модератору   Записан
Михаил
Модератор
*****

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

Сообщений: 5513



« Ответ #46 : 25 августа 2013, 21:05:38 »

У меня вроде работает.

* IgnoreOnceVisitedSites.rar (3.99 Кб - загружено 124 раз.)
Сообщить модератору   Записан
zakoul
Старожил
****

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

Сообщений: 326


« Ответ #47 : 25 августа 2013, 21:27:27 »

Спасибо. Работает.
Сообщить модератору   Записан
zakoul
Старожил
****

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

Сообщений: 326


« Ответ #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 Offline

Сообщений: 53


« Ответ #49 : 10 сентября 2013, 06:02:37 »

Не вижу причин заморачиваться с ssd. У них ресурс не ниже обычных HDD. Как расширение конечно интересно, но не более того. IMXO
Сообщить модератору   Записан
Страниц: 1 2 [3]  Все   Вверх
  Отправить эту тему    Печать  

 
Перейти в: