Brave mobile users can expect up to two and a half extra hours of browsing per battery charge.
This research was conducted by Dr. Matteo Varvello, performance researcher at Brave, and Dr. Ben Livshits, Brave’s Chief Scientist.
We are continuing our series of posts evaluating Brave browser’s performance. This time we look at a key aspect for mobile users: battery consumption. In fact, very little is known of the additional battery cost imposed by the explosion of ads and trackers on the Web. In our research, we show that Brave consumes 40% less battery than popular browsers like Chrome, Edge, and Firefox, thanks to a combination of bandwidth savings and lower CPU pressure. When compared to various ad blocking browsers, Brave still manages to shave an extra 20% of battery savings, derived from the lower CPU consumption.
We estimate a browser’s energy consumption leveraging recent hardware and software advances in Android. From a hardware perspective, most modern Android phones come equipped with battery sensors that can report the amount of charge (mAh) left in the battery, along with other metrics like current drawn and battery temperature. From a software perspective, battery-historian is an open-source tool which allows the analysis of battery consumption using Android “bugreport” files — which aggregate data about CPU and bandwidth usage, battery statistics from the above sensors, etc.
|Firefox +uBlock (vrs 1.18.4)||65.0||65.0|
We compare the battery consumption of Brave against vanilla Android browsers (Chrome, Firefox, Edge) and ad blocking browsers (Firefox enhanced with the uBlock origin plugin, Adblock Browser, Firefox Focus, Kiwi). For each browser, the last version published on the Google PlayStore was used. The above table summarizes, for each browser, both the specific version used and the underlying version of Chrome or Firefox the browser is currently built on.
We automate browser testing using the Android Debugging Bridge (ADB) over wifi to eliminate the noise caused by USB charging of the device. It follows that the results reported here are obtained while the phone under test was connected to a 5.8Ghz wifi (North American IP) and set in airplane mode. Each browser is tested at the same initial battery level (80%) to eliminate the issue of variable discharging rate as the battery level drops. This process is automated by connecting the phone to a smart power socket which our measurement tool activates as needed.
The device under test is a Samsung Galaxy S9 (Android 9.0). For each browser, we measure the battery consumption of sequentially visiting 20 popular websites (news, e-commerce, and tech). Each website is loaded in a new tab which is then kept open in the background. When loading a website, the testing tool waits 5 seconds — which we empirically measured to be enough to load these popular websites on our fast wifi network — followed by scrolling over the page multiple times for ~30 seconds. This workload is executed in ~11 minutes, and repeated 5 times per browser, for a total of about one hour of browsing, per browser. Note that automated page scrolling (via ADB, e.g., adb shell input swipe …) does not work on Firefox-based browsers, which implies an underestimation of their battery consumption which we quantify below.
The figure below shows an example of some of the output produced by battery-historian during one of our tests running Brave. We note the 11 minutes duration (01:24 to 01:35, UTC) and how the CPU and the screen were active the whole time. The phone is in airplane mode with the wifi radio active during the whole experiment and signal strength mostly “good” (yellow) and sometimes “great” (green). The bottom of the plot also shows a decreasing (Coulomb) charge sampled every 30 seconds (blue shade variation) by the battery sensor and a fairly stable battery temperature (minimal color variation).
Selecting a phone for testing
For our tests, we chose a Samsung Galaxy S9 for two reasons. First, it is a modern and popular phone representative of what a large fraction of the (US) population currently uses. Second, it mounts a max77705 battery sensor with a 30 second reporting frequency, when active. The figure compares the reporting frequency of the S9 against Google Pixel-2 under different conditions (active and charging). The figure shows how the S9 accurately reports battery readings each 30 seconds, while the Pixel-2 has an overall coarser and less predictable reporting frequency. Although not relevant to our experiments, we also plot the reporting frequency when the phones are charging. In this case both phones show a reliable reporting frequency of 10 seconds or less (S9) and 60 seconds (Pixel-2), respectively.
Firefox does not respond to the ADB command for scrolling a webpage which can potentially produce an advantage (bandwidth, cpu, and thus battery consumption) for Firefox, Firefox-uBlock, and the Adblocker Browser which is also based on Firefox. Note that this issue does not impact Firefox Focus since, despite its name, it is based on Chromium (see above table). In our tests, we empirically quantified that the lack of webpage interaction accounts for about 15mAh savings.
Vanilla Android Browsers
The above figure compares Brave’s battery consumption against three popular Android browsers: Chrome (72.0.3626.96), Firefox (65.0), and Edge (220.127.116.1130). The plot shows, for each browser, the average battery discharge (mAh) across the 5 test runs, with error-bars reporting the standard deviation. We compare the battery discharge directly computed from Android’s bugreport (–batterystats) and reported by battery-historian. The plot shows three key results:
- Despite favorable testing conditions, Firefox consumes twice as much battery as Brave (164 vs 80mAh), 30% more than Chrome (124mAh), and 23% more than Edge (132mAh).
- Brave consumes 35-39% less battery than Chrome and Edge, respectively. On a healthy 3,000mAh battery, as in our S9, this implies that Brave’s users can enjoy an extra two and half hours of browsing per battery charge, i.e., 6.8 hrs for Brave, 4.4 hrs for Chrome/Edge, and 3.4 hrs for Firefox. “Healthy” refers to a battery with small variability in the discharge rate as the overall battery charge drops.
- Battery-historian reports higher battery discharge values than batterystats. However, both tools report the same trend and the overall results do not change.
The previous results suggest that Brave, on Android, is more energy efficient than its competitors. To understand why, we below report on its resource usage, specifically bandwidth and CPU.
Brave consumes, on average, 40% less bandwidth than the other browsers (left plot in the figure below). These traffic savings derive from Brave’s policy of blocking third party tracking and ads. Less traffic implies less wifi usage, less CPU work, etc. translating in the above energy savings. Further, Brave’s bandwidth consumption is very stable across experiments, i.e., significantly lower standard deviation of few MBytes versus tens of MBytes. This is thanks to a more stable browsing experience, e.g., no unpredictable pop-ups (as observed in Firefox and Edge), and lack of dynamic advertisement that can change in between runs.
The right plot above shows the CPU utilization reported by battery-historian as user-time and system-time. User-time is the amount of CPU time spent in user-mode, or outside of Android. Brave’s user-time is halved compared to Firefox, Edge, and Chrome. A similar observation is noticeable for the system-time, which is the amount of CPU time spent in Android, e.g., system calls executed by the browser as well as Android’s undergoing activity.
Ad blocking Browsers
We compared Brave’s battery consumption against several ad blocking Android browsers: Adblock Browser (1.4.0), Kiwi (Eta), Firefox (65.0) enhanced with the uBlock Origin plugin (vrs 1.18.4), and Firefox Focus (8.0.6). The below plot shows that Adblock Browser, Kiwi, and Firefox Focus achieve a similar average battery discharge (90-100mAh) which is a 20% reduction compared to vanilla browsers. Brave further reduces battery consumption by 20%, with average discharge around 80mAh, as also previously reported. While Firefox-uBlock seems more competitive (90mAh, on average), it should not be forgotten that Firefox leverages the advantage of lacking page interaction, which we estimated at an extra 15mAh.
Ad blocking browsers are expected to have an overall lower bandwidth consumption compared to vanilla browsers. With the exception of Kiwi, this is indeed the case and all browsers have a similar bandwidth footprint. Brave is still by far the least CPU-hungry browser (20-40% reduction), even more efficient than Firefox without web page interaction. In presence of a similar network footprint, these CPU savings are responsible for the above battery savings.
This post shows that Brave offers remarkable battery savings in Android (20-40%) compared with both vanilla browsers (Chrome, Firefox, Edge) and ad blocking browsers (Adblock Browser, Firefox equipped with the uBlock plugin, Firefox Focus, and Kiwi). .
These results were obtained by comparing the above browsers when serving a realistic workload under the same conditions, i.e., stable wifi connection and a modern Android phone (Samsung Galaxy S9). We further investigated the root causes of the above savings and found that the bandwidth reduction provided by Brave’s aggressive ad blocking provides the main battery savings when compared to vanilla browsers. The lighter CPU footprint compared to competing ad blocking browsers is the main reason for the extra 20% battery savings we have measured for Brave.