Mobile App Energy Profiler

Unlike desktops, mobile devices are plugged into power supply for only short duration, and a long lasting battery is a key desirable characteristic for device users. Rogue apps are among the biggest reasons for smartphone battery drain and high network data usage cost. It is important for mobile applications to be energy efficient, and mobile application developers need to analyze the impact of their applications on the battery life as well as utilization of resources. Just like execution time and memory profilers expose performance and memory bottlenecks respectively, a mobile app energy profiler exposes energy bottlenecks. It provides useful insights about power consumption by various hardware components (e.g. display, network, CPU), and helps application developers in identifying offending events, activities and segments of code that are causing high energy footprint, and improve energy efficiency of their applications.

Most of the recent research techniques consist of two phases. First, in training phase (one time effort), a power consumption model for a device is developed by executing various carefully designed sample applications, recording actual energy consumed (using external power meter), and correlating it with the hardware performance counters (HPC). Later, in profiling phase, energy consumption by an application is estimated by applying this model on HPC values collected during an execution of that application. Origin of some of this research can be traced back to reducing power cost in data centers, where power models for desktops were used in evaluating energy efficiency of an application running in the data center.

A mobile app energy profiler consists of:

  • Data Collection Agent: runs during profiling of an application on a device or a device emulator and collects HPC values (should be lightweight)
  • Power Models: mathematical models for various components (such as display, network, CPU, GPU, GPS, camera, SSD) for various devices that correlate HPC values to power consumed
  • Analysis Engine: applies a power model for a specific device on HPC values collected by the data collection agent during a specific execution of an application being profiled.

Developed for Windows Phone 8, Windows 8. Read more details at battery profiler in Visual Studio blog.

With: , , , in collaboration with Visual Studio Profiler team.

Windows Phone 8

Released in Windows Phone 8 SDK as part of Visual Studio 2012 in Oct 2012.

Windows 8

Available in Visual Studio 2013 preview.

Featured in Microsoft Build 2013, Day 1 Keynote talk (46:29 - 48:39):

Covered in detail in Visual Studio 2013 Diagnostics Tools talk (24:53 - 38:40):

It has also been featured in a TechCrunch article.

Product/Tool Info:

Name: Windows Phone SDK 8.0 (Visual Studio 2012)
Feature: Battery profiler (screen shot)
OS: Windows, Windows Phone 8.0
Official Web Site: http://msdn.microsoft.com/en-us/library/windowsphone/develop/ff402523.aspx
Download Link: http://www.microsoft.com/en-us/download/details.aspx?id=35471
Date: Oct 2012

Relevant Research

  • Safari: Function-level Power Analysis using Automatic Instrumentation. Shinan Wang, Youhuizi Li, Weisong Shi, Lingjun Fan, Abhishek Agrawal. In Proceedings of the 3rd International Conference on Energy-aware Computing (ICEAC 2012). IEEE. Cyprus, December, 2012. (paper)
  • Profiling Software for Energy Consumption. Simon Schubert, Dejan Kostic, Willy Zwaenepoel and Kang Shin. In International Conference on Green Computing and Communications (GreenCom 2012). IEEE, Besançon, France, Nov 2012.
  • Empowering Developers to Estimate App Energy Consumption. Radhika Mittal, Aman Kansal, and Ranveer Chandra. In 18th annual international conference on Mobile computing and networking (Mobicom '12). pp 317-328. ACM. Istanbul, Turkey, August 2012. (paper)
  • The Model Is Not Enough: Understanding Energy Consumption in Mobile Devices. James Bornholt, Todd Mytkowicz, Kathryn S. McKinley. Poster in Hot Chips: A Symposium on High Performance Chips (Hot Chips 2012). San Jose, CA, USA, August 2012. (poster, author copy)
  • What is keeping my phone awake?: characterizing and detecting no-sleep energy bugs in smartphone apps. Abhinav Pathak, Abhilash Jindal, Y. Charlie Hu, and Samuel P. Midkiff. In 10th international conference on Mobile systems, applications, and services (MobiSys '12). pp 267-280. ACM. Low Wood Bay, UK, June 2012. (paper)
  • Where is the energy spent inside my app?: fine grained energy accounting on smartphones with Eprof. Abhinav Pathak, Y. Charlie Hu, and Ming Zhang. In 7th European conference on Computer Systems (EuroSys '12). pp 29-42. ACM. Bern, Switzerland, April, 2012. (paper, more info on Eprof for Windows CE and Android)
  • Fine-Grained Power Management Using Process-level Profiling. Hui Chen, Youhuizi Li and Weisong Shi. Sustainable Computing: Informatics and Systems. Vol. 2, No. 1, pp. 33-42. March 2012 (paper)
  • ANEPROF: Energy Profiling for Android Java Virtual Machine and Applications. Yi-Fan Chung, Chun-Yu Lin, Chung-Ta King. In 17th International Conference on Parallel and Distributed Systems (ICPADS 2011). pp 372-379. IEEE. Tainan, Taiwan, Dec 2011. (paper)
  • Profiling resource usage for mobile applications: a cross-layer approach. Feng Qian, Zhaoguang Wang, Alexandre Gerber, Zhuoqing Mao, Subhabrata Sen, and Oliver Spatscheck. In 9th international conference on Mobile systems, applications, and services (MobiSys '11). pp 321-334. ACM. Bethesda, MD, USA, July 2011. (paper, slides)
  • Fine-grained power modeling for smartphones using system call tracing. Abhinav Pathak, Y. Charlie Hu, Ming Zhang, Paramvir Bahl, and Yi-Min Wang. In 6th conference on Computer systems (EuroSys '11). pp 153-168. ACM. Salzburg, Austria, April, 2011. (paper, talk)
  • Fine-grained energy profiling for power-aware application design. Aman Kansal and Feng Zhao. SIGMETRICS Perform. Eval. Rev. Vol. 36, No. 2, pp 26-31. 2008. (paper)