Thursday, February 5, 2015

Adblock Plus vs. uBlock vs. Bluhell Firewall

It's been awhile since I did one of these Spy vs. Spy posts, but with a couple of new ad blocking extensions on the scene, what better occasion for a good old-fashioned deathmatch? The two new kids on the block are uBlock (now called uBlock Origin, see update at bottom) and Bluhell Firewall, both Firefox extensions with uBlock also available for Chrome and Safari. They'll be taking on the gorilla in the room, Adblock Plus, the ad blocker practically everybody has on their computer. But do they know what lurks beneath?

Adblock Plus has had its share of controversies, but one of the main ones has been its performance. It's been accused of slowing the browser launch and being a memory hog, even if it does eliminate more ads than the competition. Bluhell Firewall and uBlock advertise themselves as being significantly lighter on resources, so let's put them to the test and see who's truly worthy.

I'll be testing for browser startup time, RAM usage on startup, and RAM usage with three tabs open (the three being IMDB, OS X Daily, and Gawker). The tests will be done on my Powerbook with TenFourFox 31 running a fresh profile with no other extensions. As a frame of reference, let's start out with no ad blocking:

startup time -- 8.5 seconds
RAM on startup -- 122 MB
RAM with three tabs open -- 265 MB

Those numbers are rough averages after a couple of run-throughs. Since the results were consistent, I didn't bother with more than two. Now let's get to Adblock Plus:

startup time -- 15 seconds
RAM on startup -- 200 MB
RAM with three tabs open -- 375 MB

The startup time includes about five seconds of a spinning beach ball while the ad blocker initializes. As you can see the memory went way up. Now let's see how uBlock does:

startup time -- 8.5 seconds
RAM on startup -- 165 MB
RAM with three tabs open -- 280 MB

No impact on startup time and modest bumps in memory usage. Finally, here's Bluhell Firewall:

startup time -- 8.5 seconds
RAM on startup -- 123 MB
RAM with three tabs open -- 215 MB

If memory is what you're going by, Bluhell is the clear winner. But does that mean it's the best? Its filters not being as extensive as Adblock Plus's, it lets the occasional ad through. It also lacks a whitelist feature, so you can't make exceptions for websites you want to support. Some people also report some site breakage.

In my opinion, uBlock is the more interesting alternative. It supports whitelists and is available on all major browsers. And as far as ad blocking goes, it's no slacker compared to Adblock Plus. In fact, Adblock Plus was overly aggressive, filtering out all of Gawker's "Promoted by..." posts. Most of those are embedded ads, but some are guest essays that, no matter how pretentious, should never be blocked.

I've always used NoScript combined with CSS rules based on floppymoose (the one shipped with Camino, to be exact) for ad blocking, but it's kind of a pain to edit your UserContent.css to include new rules for ads that get through. UBlock seems the more up-to-date option. In any event, NoScript should remain an essential item in your PowerPC toolbox to keep the Web loading fast and smooth while avoiding javascript catastrophes like this one, or this particular holocaust. I know there are a lot of about:config tweaks out there that promise big speed benefits (pipelining, etc), but they don't deliver much. To enhance the speed of your browser, it's really all about NoScript and a good ad blocker.

(UPDATE: Since the writing of this post, uBlock's original developer has left and begun a fork called uBlock Origin. UBlock will continue with new maintainers they seem to have stopped development. UBlock Origin has dropped support for Safari, so Safari users should stick with uBlock.)


  1. In luakit I place adblock's easylist.txt file locally on ~/.local/share/luakit/adblock folder. This works well.

  2. Installed uBlock. Tried your two test sites--not one single ad of any kind. Thanks!

  3. I find that with NoScript + Bluhell I get great protection, while still keeping Firefox nice and light.

    Bluhell isn't perfect, but it's so damn efficient I'm hooked. I'm a real sucker for anything efficient.

  4. Did you repeat your measurements many times or just take one snapshot? For starters it doesn't make sense that Bluhell uses less memory than your reference!

    1. Yes, it does makes a lot of sense. The reference has no ad-blocker, hence it eats more memory as result of those ads shown on the webpages.

      So, what doesn't makes sense here is that the other two ad-blockers are eating more memory than the reference!