-
Notifications
You must be signed in to change notification settings - Fork 81
Myth: uBlock consumes over 80MB
I've seen a couple of instances of people claiming uBlock Origin (uBO) is not as memory efficient as claimed. Examples:
- "I just installed it, and it uses 117MB - that's not even close"
- "Simply tried, did not see where the province of memory" (Google translate...)
When uBO launches, it loads all selected filter lists, parses the content, eliminates duplicates, then instantiates the filters using efficient internal representation. This parsing of the filter lists requires a good amount of temporary memory.
So if you look at the task manager right after uBO has loaded and parsed the filter lists, you will still see uBO's memory footprint due to the loading of all the filter lists. Still, at this point, all this temporary memory has been relinquished to the browser, but the browser hasn't yet collected the freed memory to make it available for reuse.
If the browser is idle enough, before one minute has elapsed[1], the browser should be able to garbage collect the temporary memory which was freed by uBO after it finished loading and parsing the filter lists:
The top image shows the memory footprint of uBO right after launch (Chrome 64-bit) (expect a similar memory footprint each time the filter lists get reloaded). The image at the bottom shows the memory footprint of uBO before one minute has elapsed while the browser is idle.
Note that uBO's baseline memory footprint won't change that much afterward. It will likely settle a few MB above the memory footprint reached after garbage collection has occurred, whenever the garbage collector is permitted to do its job.
When reloading all filters (after changing the selection of filter lists, for example), I notice uBO's baseline memory footprint edges higher each time. I entered an issue to remind myself to investigate whether there is anything to be done for this. Currently, I think the cause is cumulative memory fragmentation, and there might not be anything to be done. Typically I expect users will select a set of lists and stick to that afterward, so this would make this particular issue irrelevant.
[1] In the latest release of Chromium (40+), I have noticed that the garbage collector can be "lazy" (meaning sometimes it takes a while before freed memory is garbage collected). When surveying memory usage, it is essential to force a garbage collection cycle using the dev console of the extension itself.
- Wiki home
- About the Wiki documentation
- Permissions
- Privacy policy
- Info:
- The toolbar icon
- The popup user interface
- The context menu
-
Dashboard
- Settings pane
- Filter lists pane
- My filters pane
- My rules pane
- Trusted sites pane
- Keyboard shortcuts
- The logger
- Element picker
- Element zapper
-
Blocking mode
- Very easy mode
- Easy mode (default)
- Medium mode (optimal for advanced users)
- Hard mode
- Nightmare mode
- Strict blocking
- Few words about re-design of uBO's user interface
- Reference answers to various topics seen in the wild
- Overview of uBlock's network filtering engine
- uBlock's blocking and protection effectiveness:
- uBlock's resource usage and efficiency:
- Memory footprint: what happens inside uBlock after installation
- uBlock vs. ABP: efficiency compared
- Counterpoint: Who cares about efficiency, I have 8 GB RAM and|or a quad core CPU
- Debunking "uBlock Origin is less efficient than Adguard" claims
- Myth: uBlock consumes over 80MB
- Myth: uBlock is just slightly less resource intensive than Adblock Plus
- Myth: uBlock consumes several or several dozen GB of RAM
- Various videos showing side by side comparison of the load speed of complex sites
- Own memory usage: benchmarks over time
- Contributed memory usage: benchmarks over time
- Can uBO crash a browser?
- Tools, tests
- Deploying uBlock Origin
- Proposal for integration/unit testing
- uBlock Origin Core (Node.js):
- Troubleshooting:
- Good external guides:
- Scientific papers