- May 19, 2016
There are two AdGuard Base filters;IMO your list is pretty excessive and redundant, you dont need AdGuard Base + EasyList (choose one), no need to have "I dont care about cookies", Anti-Facebook, AdGuard Annoyances, AdGuard Social Media when you have Fanboy's Annoyance.
Basically, we're talking about the two different filters with same name.Actually this is accurate more than 95% of the time but not always. uBlock Origin can't parse all the rules from Adguard filters including Adguard Base, Adguard Tracking Protection, AdGuard Annoyances, AdGuard Social Media. I've seen this combo missing ads, empty place holders quite a few times. Some rules only works with Adgaurd extension. I've seen the reverse thing also, Adguard extension failing to parse a rule from EasyList related filters but less frequent than the previous combo. Only using Adguard related filters on uBlock Origin is not the best idea. If using only one then I would suggest to use EasyList related filters on uBlock Origin instead of Adguard. It works much better this way. Using both doesn't cause any harm also but if using less filters is a priority then uBO with EasyList and Adguard with Adguard is the way to go.
You shouldn't use full AdGuard Base filter because this one is optimized for AdGuard specifically. This filter contains a lot of rules that uBlock Origin does not recognize. It skips those rules, but the filters itself still slows down browsing because of its size.
There is no difference in speed by having less or more rules, it's provable both by theory (computational complexity) and by measurements (use dev tools or a benchmark tool, never rely on human perception - you also need to know how to measure it properly, network latency affects much more than rule matching). More rules causes more memory consumption, but what causes slowdown is NOT the number of rules but that of inefficient rules (1). Also the number of cosmetic filters injected to the page can affect performance, more so if they're inefficient. The main point of having less filters is to reduce FPs and anti-adblock warnings - for these and also for really better performance turning generic cosmetic filters off is the most effective way (2) but you may need to replace these rules by yourself, a reason I provide Placeholder Hider but it's not very comprehensive. Another point is stricter blocking - piling many filters up also piles whitelists up which have precedence over blocking filters. I have been reporting unnecessary whitelists to major lists and even provide Anti-whitelist but I don't look at other lists enough, and occasionally see loose whitelists in some minor lists. One should really be careful before subscribing unpopular lists, Internet is full of low-quality lists.
I explicitly mention non-linear search mechanisms in the examples I gave. Technically you are forgetting the time it takes to convert and index the external lineair data (the filters) into memory at first launch of the extension and when updating filters. But as mentioned earlier, the compelling argument against 'user maintained filters with many rules'' is not the processing power of the CPU or the extension's search mechanism, but the fact that those lists contain a lot of dead rules and have rules for websites with very low visitor rates (so the chance this rules will ever be beneficial or triggered is near to zero).Can't edit, just adding an example - it's essentially the same as the reason time for Google search is not affected by the number of sites. what solved the issue is not computational power or code optimization, but the idea of indexing and a proper algorithm.
@Lenny_Fox It's true. The idea more rules causes slowdown comes from a wrong assumption of linear matching which doesn't make sense - why don't you use decision tree of a kind (plain explanation by Ghostery) when most rules are rarely or not used for common requests? See gorhill's comment too (it's not only about pure hostname rules). Ofc it's not that adding 1,000,000 rules doesn't add 1ms, what matters is whether adding reasonable amount of rules adds perceptible amount of time - most people can't tell >100 ms difference. Mathematically it's trivial to show that complexity of matching a n-length request to X filters is at most O( n ) order, meaning the number of rules doesn't matter. Seeing is believing, I myself measured but at first failed as network latency which changes every seconds affects much more than the matching, so I had to keep browser cache. There's also Brave's article. You see adding 16,000 rules of EP doesn't add 1 micro-second/request once token-based approach was adopted.
Now you are on my territory (I am a digital marketeer). Two reason's why your personally experience is not relevant for the broad majority of peopleWell, the number of ad-networks are finite but some of them use hundreds of different domains (a very notorious example) and others use cloudfront or amazonaws. Advertisers & web masters have been seeking to bypass ad-blocker and it's becoming harder and harder to block them by simple rules. Say, "9to5" sites detect ad-blocker and re-inject ads with ad-proxing so that they can't be blocked by simple rules (fortunately uBO has scriptlets to counter this). It's not only 9to5, incredibly many sites detect ad-blocker tho how they react depends (some sites detect and do nothing e.g. thewirecutter). It's also no more rare trackers implemented as 1st party even without CNAME cloaking. In my region (JP) Treasuredata does this with data sharing agreement. Ads as 1st party are not rare too, indeed very common on WordPress sites with images hosted on the site and href=(advertisers or shopping sites with an affiliate code). Blocking ad-networks may block redirect on click but that's not many user want - they want the images blocked and here generic rules come into play, sometimes even regex rules are used (slow but acceptable trade-off if narrowed down). I tend to believe those who spend their internet time only on major sites are actually rare. In my case most of sites are one-time visit - aggregated together these one-time sites take 50%+ of my internet time - but it doesn't mean I want to see ads or trackers there.
Anyway, I came here not for discussion - need to leave soon.