Debunking "uBlock Origin is less efficient than Adguard" claims - uBlockOrigin/uBlock-issues GitHub Wiki

More specifically, debunking @christianbute's claim in https://twitter.com/christianbute/status/893462816270815232. Two tweets quoted verbatim:

According to my tests, the best ad and malwaretising blocker for @MicrosoftEdge is AdGuard. Anything else just made the performance worse.

Yes, even uBlock Origin slowed down my browsing experience. On stock settings or custom lists, doesn't matter. Don't want to mention others

I can't unfortunately investigate this claim on Microsoft Edge, as I do not have Windows. However, both extensions uses the same code on Microsoft Edge as they do on Chromium, thus I can at least benchmark with Chromium.

My objective measurements, benchmarking on Chromium 59 on Linux 64-bit:

uBO 1.13.8

  • default settings/lists
  • all lists up to date

Adguard 2.6.7

  • English + Spyware filters
  • disable "Allow search ads and websites' self-promotion"
  • all lists up to date

Steps to reproduce:

  1. Launch Chromium with only one of the blocker enabled
    • with pinned Extensions tab + only one new tab
    • no other extension
  2. Open Chromium's own Task manager, wait for garbage collection in extension
  3. Open background page of extension, select "Performance" pane
  4. Click "Record" button in performance pane
  5. Select the already opened "New tab" in browser
  6. Right click on 20-tabs bookmark folder (see below), and select "Open all bookmarks"
  7. Wait for all tabs to be loaded
  8. Activate each of the newly opened tab one after the other
  9. Click "Stop" button in Performance pane
  10. Screenshot results in "Performance" pane

For the "memory usage" benchmark: all the same steps except developer tools of extension is not opened, and only Task manager is taken into account. Wait at least 2 minutes after step 8. before taking a screenshot of Task manager.

20-tabs bookmark folder in bookmarks bar (perused from top posts on Hacker News in the last year, hence "real life usage"):

Results:

CPU usage (see pic):

  • uBlock Origin (top): 4,662.3 ms (3,403.6 ms + 1,258.7 ms)
  • Adguard (bottom): 14,424 ms (11,638.8 ms + 2,785.2 ms)

c

Memory usage after all tabs loaded (see pic, top is after browser launch + garbage collection and before all tabs opened):

  • uBlock Origin (left): 1,254 MB
  • Adguard (right): 1,535 MB

d

Conclusion:

Both extensions use essentially the same code on Microsoft Edge as they do on Chromium, so it is expected they will have the same relative performance outcome. Given that uBlock Origin consumes 1/3 of CPU cycles to actually accomplish more than Adguard (uBO's defaults includes Peter Lowe's and malware lists), to claim that the results are completely reversed on Microsoft Edge is quite an extraordinary claim, and thus needs to be substantiated by more than just a completely subjective and data-less assessment such as "methodology is real life usage".


Apparently, publishing results backed by data + methodology to debunk an unsubstantiated claim is "attacking". Subjectivity, bias, placebo effect are a thing, and a way to counter these is to stick to objective data, which is what I did above.