Quantcast
Channel: Software Updates Latest Topics
Viewing all articles
Browse latest Browse all 78092

uBlock Origin 1.9.7b4

$
0
0
uBlock Origin (or uBlock₀) is not an ad blocker; it's a general-purpose blocker. uBlock₀ blocks ads through its support of the Adblock Plus filter syntax. uBlock₀ extends the syntax and is designed to work with custom rules and filters. Furthermore, advanced mode allows uBlock₀ to work in default-deny mode, which mode will cause all 3rd-party network requests to be blocked by default, unless allowed by the user.
 
That said, it's important to note that using a blocker is NOT theft. Don't fall for this creepy idea. The ultimate logical consequence of blocking = theft is the criminalisation of the inalienable right to privacy.
 
Ads, "unintrusive" or not, are just the visible portions of privacy-invading apparatus entering your browser when you visit most sites nowadays. uBlock₀'s main goal is to help users neutralize such privacy-invading apparatus — in a way that welcomes those users who don't wish to use more technical, involved means (such as µMatrix).
 
EasyList, Peter Lowe's Adservers, EasyPrivacy and Malware domains are enabled by default when you install uBlock₀. Many more lists are readily available to block trackers, analytics, and more. Hosts files are also supported.
 
Once you install uBlock₀, you may easily un-select any of the pre-selected filter lists if you think uBlock₀ blocks too much. For reference, Adblock Plus installs with only EasyList enabled by default.

 

Changes

Core code related to static and cosmetic engines has been refactored to take advantage of ES6 Set/Map (related issue: #1070). Polyfilled versions of Set/Map are provided for compatibility with Chromium 37 and less[1], and for Pale Moon 26 and earlier[2]. While at it, I also revisited some of the inner-most loops executed at load time to remove other observed overheads in profiling results.

Benchmarks shows that there are good gains to be had in performance and memory efficiency when using ES6 Set/Map. The performance gains are especially true when dealing with collections with a lot of misses, which is typical of the static and cosmetic filtering engines ni uBO.

Following the above refactoring, profiling using Chromium (which makes it easy), I observed:

  • Non-selfie case: uBO will roughly load in about half the time, because:
    • Using ES6 Set and Map instead of Object
    • No longer using String.split to split lines into fields = less memory allocations = less work for garbage collector
  • Selfie-case: there is a marginal performance improvement at most in boot time -- make sense since a selfie is just a no-parsing-at-all load mechanism regardless of how the data is represented internally.

This is default settings + EasyList Germany -- forgot to un-check it before profiling...
a

Closed as fixed:


  1. There is a "Enable Experimental JavaScript" flag which can be used to enable ES6 Set/Map for Chromium 31-37. When the polyfilled Set/Map are used for Chromium-based browsers, uBO's memory usage will be higher, as using Object as Set or Map is less efficient memory-wise (though still fast).
  2. For Pale Moon 26 and less, Set/Map iterators are not ES6-compatible.

Downloads


Viewing all articles
Browse latest Browse all 78092

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>