Mobile Web page performance is critical to content providers, service providers, and users, as Web browsers are one of the most popular apps on phones. Slow Web pages are known to adversely affect profits and lead to user abandonment. While improving mobile web performance has drawn increasing attention, most optimizations tend to overlook an important factor, energy. Given the importance of battery life for mobile users, we argue that web page optimizations should be evaluated for their impact on energy consumption. However, examining the energy effects of a web optimization is challenging, even if one has access to power monitors, for several reasons. First, the page load process is relatively short-lived, ranging from several milliseconds to a few seconds. Fine-grained resource monitoring on such short timescales to model energy consumption is known to incur substantial overhead. Second, Web pages are complex. A Web enhancement can have widely varying effects on different page load activities. Thus, studying the energy impact of a Web enhancement on page loads requires understanding its effects on each page load activity. Existing approaches to analyzing mobile energy typically focus on profiling and modeling the resource consumption of the device during execution. Such approaches consider long-running services and apps such as games, audio, and video streaming, for which low-overhead, coarse-grained resource monitoring suffices. For page loads, however, coarse-grained resource monitoring is not sufficient to analyze the energy consumption of individual, short-lived, page load activities. We present RECON (REsource- and COmpoNent-based modeling), a modeling approach that addresses the above challenges to estimate the energy consumption of any Web page load. The key intuition behind RECON is to go beyond resource-level information and exploit application-level semantics to capture the individual Web page load activities. Instead of modeling the energy consumption at the full page load level, which is too coarse grained, RECON models at a much finer component level granularity. Components are individual page load activities such as loading objects, parsing the page, or evaluating JavaScript.
To do this, RECON combines coarse-grained resource utilization and component-level Web page load information available from existing tools. During the initial training stage, RECON uses a power monitor to measure the energy consumption during a set of page load processes and juxtaposes this power consumption with coarse-grained resource and component information. RECON uses both simple linear regression and more complex neural networks to build a model of the power consumption as a function of the resources used and the individual page load components, thus providing benefits over individual models. Using the model, RECON can estimate the energy consumption of any Web page loaded as-is or upon applying any enhancement, without the monitor.
We experimentally evaluate RECON on the Samsung Galaxy S4, S5, and Nexus devices using 80 Web pages. Comparisons with actual power measurements from a fine-grained power meter show that, using the linear regression model, RECON can estimate the energy consumption of the entire page load with a mean error of 6.3% and that of individual page load activity segments with a mean error of 16.4%. When trained as a neural network, RECON's mean error for page energy estimation reduces to 5.4% and the mean segment error is 16.5%. We show that RECON can accurately estimate the energy consumption of a Web page under different network conditions, such as lower bandwidth or higher RTT, even when the model is trained under a default network condition. RECON also accurately estimates the energy consumption of a Web page after applying popular Web enhancements including ad blocking, inlining, compression, and caching.