Полезная информация

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

№287609-02-2011 12:33:07

Lain_13
Забанен
 
Группа: Members
Откуда: Волшебная Страна
Зарегистрирован: 26-04-2006
Сообщений: 10320
UA: Firefox 4.0

Re: Adblock Plus для Firefox (автор Владимир Палант)

Радик245
Я говорю о ситуации когда нам нужно заблокировать site.com, site.ru, site.us, site.com.ua правилом ||site.~^^, но не трогать site.name.org (в данном случае site субдомент name.org). В принципе это решаемо условием $domain=~name.org или если name.org сидит на множестве доменов первого уровня, то $domain=~name.~^.
Вообще вероятность такого события довольно мала. У нас уже есть пачка общих правил вида ||site. и ещё ни к одному не пришлось приделать исключение из-за того, что оно что-то лишнее блокирует.

Отредактировано Lain_13 (09-02-2011 13:07:01)

Отсутствует

 

№287709-02-2011 15:19:46

Владимиp Палант
Участник
 
Группа: Extensions
Зарегистрирован: 06-11-2004
Сообщений: 906
UA: Firefox 3.6
Веб-сайт

Re: Adblock Plus для Firefox (автор Владимир Палант)

Lain_13 пишет

Было бы интересно увидеть какую подстроку AdBlock считает наиболее уникальной в каждом правиле.

Скоро увидите - эти данные будут кешироваться на диске, в отдельном файле, там и посмотрите.

Отсутствует

 

№287809-02-2011 16:23:02

Lain_13
Забанен
 
Группа: Members
Откуда: Волшебная Страна
Зарегистрирован: 26-04-2006
Сообщений: 10320
UA: Firefox 4.0

Re: Adblock Plus для Firefox (автор Владимир Палант)

После дополнительного размышлений я пришёл к выводу, что маска ~^ в качестве MagicTLD может быть полезной исключительно в случаях когда нужно указать на то, что искомая строка идёт сразу после домена первого уровня (вроде .ru/banners/). Если мы не можем с её помощью отличить site.ru от site.name.org в правиле ||site.~^^, то с таким же успехом мы можем использовать просто правила вида ||site. и делать исключения по доменам. Хотя, как я уже говорил, это позволяет чётко указывать уровень вложенности элементов, а не как сейчас с маской «*».
в domain-исключениях от ~^ тоже не много толку. С таким же успехом там могла бы работать маска «*».

Добавлено 09-02-2011 16:28:42
С другой стороны если точку исключить из подходящих для ~^ символов (т.е. не полный антипод ^), то в качестве MagicTLD и маски для domain-ограничений она могла бы работать вполне успешно.

Отредактировано Lain_13 (09-02-2011 16:26:15)

Отсутствует

 

№287909-02-2011 21:38:40

Йцукен
  
 
Группа: Extensions
Зарегистрирован: 05-06-2008
Сообщений: 4799
UA: Firefox 3.6

Re: Adblock Plus для Firefox (автор Владимир Палант)

Lain_13 пишет

С другой стороны если точку исключить из подходящих для ~^ символов (т.е. не полный антипод ^)

Именно. В таком случае лучше использовать не ~^, а, например, @, чтобы не было путаницы.

Отсутствует

 

№288009-02-2011 21:54:17

Lain_13
Забанен
 
Группа: Members
Откуда: Волшебная Страна
Зарегистрирован: 26-04-2006
Сообщений: 10320
UA: Firefox 4.0

Re: Adblock Plus для Firefox (автор Владимир Палант)

Радик245
Нет, боюсь это тоже не годится. В имени любого «каталога» или «файла» может быть любое количество точек. Это значит, что указав /@.@| после домена мы заблокируем только файлы с одной точкой в имени. Достаточно добавить разное количество точек в имена файлов и вся польза от этой маски накрывается медным тазом.

Т.е. одновременно как MagicTLD и как антипод «^» у этой маски работать не получится, а жаль. :(

Отсутствует

 

№288110-02-2011 18:11:50

Lain_13
Забанен
 
Группа: Members
Откуда: Волшебная Страна
Зарегистрирован: 26-04-2006
Сообщений: 10320
UA: Firefox 4.0

Re: Adblock Plus для Firefox (автор Владимир Палант)

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

Почему так? Я знаю массу правил которые претендуют сесть на ключи «php», «swf», «image» и я просто уверен, что какое-нибудь правило таки закончит на «com», «net», «cgi», «asp» и прочих не самых удачных ключах. У некоторых правил даже выбора нет: .aspx?ad=, .html?ad=, .php?ad= и подобные.

А так ли хороша эта новая оптимизация в том виде, в котором ты её реализовал?

Отредактировано Lain_13 (10-02-2011 18:14:30)

Отсутствует

 

№288210-02-2011 18:19:39

Владимиp Палант
Участник
 
Группа: Extensions
Зарегистрирован: 06-11-2004
Сообщений: 906
UA: Firefox 3.6
Веб-сайт

Re: Adblock Plus для Firefox (автор Владимир Палант)

Lain_13
Ну я ведь все-таки скорость замерял. В Firefox 3.6 получалось ускорение на почти 50%, а в Firefox 4 и вовсе в два раза.

Отсутствует

 

№288310-02-2011 20:46:34

Йцукен
  
 
Группа: Extensions
Зарегистрирован: 05-06-2008
Сообщений: 4799
UA: Firefox 3.6

Re: Adblock Plus для Firefox (автор Владимир Палант)

Владимиp Палант
А что, если «запретить» Adblock Plus сопоставлять правилам хотя бы ключи «com», «net», «org», так как такие ключи приведут к сверке с регулярками почти каждого элемента страницы на сайтах в этих доменах? Или скорость только снизится?

Отсутствует

 

№288411-02-2011 10:44:36

Владимиp Палант
Участник
 
Группа: Extensions
Зарегистрирован: 06-11-2004
Сообщений: 906
UA: Firefox 3.6
Веб-сайт

Re: Adblock Plus для Firefox (автор Владимир Палант)

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

Отсутствует

 

№288511-02-2011 12:12:33

Lain_13
Забанен
 
Группа: Members
Откуда: Волшебная Страна
Зарегистрирован: 26-04-2006
Сообщений: 10320
UA: Firefox 4.0

Re: Adblock Plus для Firefox (автор Владимир Палант)

В общем: Владимир сделает сохранение файла с правилами и ключами. Тогда и посмотрим где и почему правила сели на com, net и далее по списку.

Отредактировано Lain_13 (11-02-2011 12:12:56)

Отсутствует

 

№288611-02-2011 16:20:40

Йцукен
  
 
Группа: Extensions
Зарегистрирован: 05-06-2008
Сообщений: 4799
UA: Firefox 3.6

Re: Adblock Plus для Firefox (автор Владимир Палант)

Владимиp Палант

Скоро увидите - эти данные будут кешироваться на диске, в отдельном файле, там и посмотрите.

Это уже есть в тестовых версиях?

Добавлено 11-02-2011 16:26:45
Lain_13
http://adblockplus.org/development-builds/

Faster filter matching algorithm · 77 days ago by Wladimir Palant

It has been a while since I looked into filter matching algorithms and settled on the one that Adblock Plus still uses today, mostly unchanged. However, a simpler algorithm with even better performance characteristics was suggested recently, this algorithm is implemented in the current development build (Adblock Plus 1.3.5a.20101125). The side-effect is that many filters will now be marked as slow, filter subscriptions will need to adapt to take full advantage of this algorithm (forum topic). This is why this change will most likely be reverted before Adblock Plus 1.3.5 release and only released with Adblock Plus 1.4.

То есть скорее всего откладывается.

Отредактировано Радик245 (11-02-2011 16:27:32)

Отсутствует

 

№288711-02-2011 16:43:28

Владимиp Палант
Участник
 
Группа: Extensions
Зарегистрирован: 06-11-2004
Сообщений: 906
UA: Firefox 3.6
Веб-сайт

Re: Adblock Plus для Firefox (автор Владимир Палант)

Радик245
В тестовых версиях нет, я как раз сейчас над этим работаю.

Есть более актуальный пост, ему всего неделя: https://adblockplus.org/blog/updated-ro … k-plus-135

One thing is important enough to be repeated: faster filter matching algorithm will come in Adblock Plus 1.3.5, not Adblock Plus 1.4 as originally announced.

Не откладывается.

Отсутствует

 

№288811-02-2011 16:52:42

Йцукен
  
 
Группа: Extensions
Зарегистрирован: 05-06-2008
Сообщений: 4799
UA: Firefox 3.6

Re: Adblock Plus для Firefox (автор Владимир Палант)

Владимиp Палант
Хорошо! А то Lain_13 уже делает правила без учёта нынешнего алгоритма оптимизации и таких в RuAdList+EasyList уже больше двадцати.

Отсутствует

 

№288914-02-2011 17:55:26

Владимиp Палант
Участник
 
Группа: Extensions
Зарегистрирован: 06-11-2004
Сообщений: 906
UA: Firefox 3.6
Веб-сайт

Re: Adblock Plus для Firefox (автор Владимир Палант)

Радик245 пишет

А что, если «запретить» Adblock Plus сопоставлять правилам хотя бы ключи «com», «net», «org», так как такие ключи приведут к сверке с регулярками почти каждого элемента страницы на сайтах в этих доменах?

Посмотрел, что Adblock Plus у меня пишет на диск (эти изменения скоро будут в тестовой версии, HTML-файл для визуализации я тоже дам). На данный момент к ключевому слову "com" в RuAdList+EasyList 13 правил:

Выделить код

Код:

||24-advert.com^$third-party
||dw.com.com^$third-party
.com/ad-
.com/ad.
.com/ad/
.com/ad?
.com/ad_
.com/ads.
.com/ads?
.com/ss/ad/
=com_ads&
||cc-dt.com^$third-party
||pc-ads.com^$third-party

Для большинства этих правил альтернатив нет. У некоторых можно было бы выбрать "ads", но там и так 41 фильтр. У одного есть еще как вариант "advert", но и здесь 11 записей.

Ключевое слово "net":

Выделить код

Код:

||banner-in.net^$third-party
||ukr.net/partner/
.net/_ads/
.net/ad/$~object_subrequest
.net/ads/
.net/ads_
||c8.net.ua^$third-party
||d.m3.net^$third-party

Та же самая история. banner - тоже более "востребованное" ключевое слово, там 19 записей. Единственное, "||ukr.net/partner/" явно можно было бы разместить более оптимально.

Ну и "org":

Выделить код

Код:

||p-rank.org/pr.php?
dverizamki.org/$object
.org/ad/
.org/ad2_
.org/ad_
.org/ads-
.org/ads/
_org_ad.

dverizamki не воспринимается как ключевое слово - может там надо || в начале фильтра? Фильтр "||p-rank.org/pr.php?" опять таки единственный, который в этом списке "случайно".

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

PS: Кстати говоря, "ads" и "banner" являются "лидирующими" ключевыми словами. Вообще ключевых слов более чем с десятком фильтров всего несколько.

Отредактировано Владимиp Палант (14-02-2011 18:07:12)

Отсутствует

 

№289014-02-2011 18:15:53

Йцукен
  
 
Группа: Extensions
Зарегистрирован: 05-06-2008
Сообщений: 4799
UA: Firefox 3.6

Re: Adblock Plus для Firefox (автор Владимир Палант)

Спасибо!

Владимиp Палант пишет

dverizamki не воспринимается как ключевое слово - может там надо || в начале фильтра?

Да, думаю, можно и ||dverizamki.org$object
Такие правила, как
||dw.com.com^$third-party
||cc-dt.com^$third-party
,  можно заменить на
://dw.com.com/
.cc-dt.com/$third-party
для ускорения проверки. ||cc-dt.com^$third-party - в изилисте.

Отредактировано Радик245 (14-02-2011 18:31:31)

Отсутствует

 

№289114-02-2011 18:33:28

Lain_13
Забанен
 
Группа: Members
Откуда: Волшебная Страна
Зарегистрирован: 26-04-2006
Сообщений: 10320
UA: Firefox 4.0

Re: Adblock Plus для Firefox (автор Владимир Палант)

> Да, думаю, можно и ||dverizamki.org$object
Изменил уже на иное. На org оно всё равно теперь не сядет.

> Такие правила, как ||dw.com.com^$third-party ||cc-dt.com^$third-party,  можно заменить на ://dw.com.com/ .cc-dt.com/$third-party для ускорения проверки

Эээ… Ну и чем это поможет? Этим бы сайтам дополнительные ключевые слова найти, а от «.» и «://» им легче хоть и станет, но на столько незначительно…

Добавлено 14-02-2011 18:41:21
Владимиp Палант
А ты кэшируеш регулярки или каждый раз их заново собираеш?

Отредактировано Lain_13 (14-02-2011 18:59:36)

Отсутствует

 

№289214-02-2011 18:56:41

Йцукен
  
 
Группа: Extensions
Зарегистрирован: 05-06-2008
Сообщений: 4799
UA: Firefox 3.6

Re: Adblock Plus для Firefox (автор Владимир Палант)

Lain_13 пишет

Эээ… Ну и чем это поможет?

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

Lain_13 пишет

Этим бы сайтам дополнительные ключевые слова найти

Выделить код

Код:

||clickserve.cc-dt.com^$third-party
://dw.com.com/redir^

Но не уверен, что это всё.

Отсутствует

 

№289314-02-2011 19:11:46

Lain_13
Забанен
 
Группа: Members
Откуда: Волшебная Страна
Зарегистрирован: 26-04-2006
Сообщений: 10320
UA: Firefox 4.0

Re: Adblock Plus для Firefox (автор Владимир Палант)

Владимиp Палант
Вижу всё больше смысла я в «оптимизируемых» регулярках.
Смысл в том, что б давать одно или несколько ключевых слов и цеплять к ним одну регулярку которая будет проверяться при их нахождении.
Так, например, пачка недавно добавленны мной userbar-правил (оптимизировал, блин)

скрытый текст
-userbar-$image
-userbar.$image
-userbar/$image
.userbar-$image
.userbar.$image
.userbar/$image
/userbar-$image
/userbar.$image
/userbar/*$image
/userbar_$image
_userbar.$image
_userbar/$image
_userbar_$image

свернётся в нечто вроде #userbar#/[./_-]userbar[./_-]/

Т.е. это позволит в рамках новой реализации поиска сильно упростить проверку отдельных ключевых слов. Проверять одну регулярку всяко проще чем десяток (если там нет хитрозадых вещеё вроде заглядывания вперёд/назад, навороченных условий и прочих подобных радостей.

Отредактировано Lain_13 (14-02-2011 19:12:20)

Отсутствует

 

№289414-02-2011 19:35:46

Йцукен
  
 
Группа: Extensions
Зарегистрирован: 05-06-2008
Сообщений: 4799
UA: Firefox 3.6

Re: Adblock Plus для Firefox (автор Владимир Палант)

Lain_13 пишет

вроде заглядывания вперёд/назад

Кажется, в ABP такое и не работает.

Добавлено 14-02-2011 19:44:40
Владимиp Палант

Lain_13 пишет

Вижу всё больше смысла я в «оптимизируемых» регулярках.

Я знаю, что Вы в очередной раз хотите сказать, что нельзя закреплять алгоритм оптимизации в правилах.
Но ведь всё равно при переходе на новый алгоритм оптимизации приходится переделывать часть правил.

Отсутствует

 

№289514-02-2011 23:43:37

Владимиp Палант
Участник
 
Группа: Extensions
Зарегистрирован: 06-11-2004
Сообщений: 906
UA: Firefox 3.6
Веб-сайт

Re: Adblock Plus для Firefox (автор Владимир Палант)

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

В "«оптимизируемых» регулярках" я смысла не вижу. Быстродействие уже и так очень хорошее, извращаться для дополнительной оптимизации незачем.

Отсутствует

 

№289615-02-2011 00:09:33

Lain_13
Забанен
 
Группа: Members
Откуда: Волшебная Страна
Зарегистрирован: 26-04-2006
Сообщений: 10320
UA: Firefox 4.0

Re: Adblock Plus для Firefox (автор Владимир Палант)

Владимиp Палант
Ну я бы сказал, что у нас довольно часто попадается ситуация в общих правилах когда мы перебираем довольно много вариантов + регулярка привязанная к ключевому слову может куда больше чем простое правило блокировки. Ведь простые правила не могут перебирать варианты, они вообще много чего не могут. Это не только оптимизация, это ещё и удобство. С другой стороны обычные регулярки могут многое, но при этом они в таком положении, что мы должны избегать их создания любыми путями. Какой смысл в их поддержке если их столько времени уже невозможно использовать без отрицательных последствий? Может давай совсем их поддержку выкинем? Всё равно же их использовать крайне нежелательно и вместо них будем клепать по 40 правил отличающихся парой знаков или числом.

Радик245
> Кажется, в ABP такое и не работает.
Это не зависит от ABP, а от движка регулярок в браузере. Он умеет.

Добавлено 15-02-2011 00:11:26
Кстати, мой способ не предполагает закрепления алгоритма оптимизации. Если ключевые слова будут искаться иным путём, то можно будет изменить обработчик для #…#/…/ и блок между #…# парсить иначе. Возможно этот блок придётся изменить в подписке, но только и всего. Мы и так ворох правил переделали и столько ещё переделаем…

Отсутствует

 

№289715-02-2011 00:36:37

Йцукен
  
 
Группа: Extensions
Зарегистрирован: 05-06-2008
Сообщений: 4799
UA: Chrome 9.0

Re: Adblock Plus для Firefox (автор Владимир Палант)

Lain_13 пишет

Это не только оптимизация, это ещё и удобство.

Именно!

Lain_13 пишет

Может давай совсем их поддержку выкинем?

Не стóит. Хотя бы для удобства оставьте.

Владимиp Палант
А какому примерно числу правил соответствует по скорости, например, такая регулярка, как

Выделить код

Код:

/[/_-]baner[\d._-s/]/

при будущем способе оптимизации — то есть если её полностью заменить простыми правилами (включая варианты с цифрами, получается 15 правил), будет быстрее или нет?

Отредактировано Радик245 (15-02-2011 00:39:06)

Отсутствует

 

№289815-02-2011 10:45:47

Lain_13
Забанен
 
Группа: Members
Откуда: Волшебная Страна
Зарегистрирован: 26-04-2006
Сообщений: 10320
UA: Firefox 4.0

Re: Adblock Plus для Firefox (автор Владимир Палант)

Такая регулярка не очень укладывается в оптимизатор на самом деле. Варианты с цифрами не будут давать ключевого слова baner.
А, да ладно, обойдёмся без регулярок.

Отсутствует

 

№289915-02-2011 12:26:46

Йцукен
  
 
Группа: Extensions
Зарегистрирован: 05-06-2008
Сообщений: 4799
UA: Firefox 3.6

Re: Adblock Plus для Firefox (автор Владимир Палант)

Lain_13
Я не о том, чтобы её оптимизировать, а есть ли смысл её заменять простыми правилами.

Отсутствует

 

№290015-02-2011 16:18:28

Lain_13
Забанен
 
Группа: Members
Откуда: Волшебная Страна
Зарегистрирован: 26-04-2006
Сообщений: 10320
UA: Firefox 4.0

Re: Adblock Plus для Firefox (автор Владимир Палант)

Радик245
В данном случае 5 правил пока хватает. Конечно при их проверке не выгодно проверять 5 регулярок вместо одной, но Владимир прав — такая микрооптимизация бесполезна.
Ну их, эти регулярки. Я был раздражен когда то писал.

Хотя иметь возможность пользоваться регулярками как обычными правилами было бы приятно. А то они что есть, что их нет.

Отредактировано Lain_13 (15-02-2011 16:21:08)

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]