James Bornholt, Todd Mytkowicz, and Kathryn S. McKinley
Although battery life has always constrained embedded and mobile hardware developers, the rise of smart phones and tablets has also made energy a fundamental concern of software developers. On the desktop, software developers generally ignored energy, but in the mobile environment, battery life is critical to the user experience. Just as developers use performance proﬁling tools, they now need energy proﬁling tools to understand how and why their software consumes energy. The inconvenience, cost, and complexity of external power measurement hardware and the inaccuracy of on-board power sensors on older phones  motivated researchers to create power modelling tools. Power modelling uses utilization metrics to estimate power draw based on previously measured correlations between the metrics and power. We show that the on-board power sensor is now accurate on a Windows Phone 7.5 device running on a SnapDragon MSM8660. Compared to external measurement hardware, the on-board “fuel gauge” is accurate to within 2% of total energy consumption. We thus modify the Windows Phone 7.5 OS to sample power without external hardware, sample the application call stack to correlate energy consumption with code, and examine power traces from two weeks of normal use. These traces illustrate behavior where modelling alone is not sufﬁcient to understand the energy consumption of a mobile device. For example, we observe inter-day variations in base power draw as the battery discharges, an effect that to our knowledge is not captured by existing modelling work. This work recommends that a hybrid approach will improve the accuracy of energy proﬁles, and that direct measurements will signiﬁcantly improve the accessibility of ﬁne-grained energy information in both testing and deployment. Armed with easy-to-use energy analysis tools, hardware designers, OS developers, and third party application developers will be better equipped to understand and optimize the energy behavior of mobile code.