Empowering Developers to Estimate App Energy Consumption .Empowering Developers to Estimate App Energy

  • View

  • Download

Embed Size (px)

Text of Empowering Developers to Estimate App Energy Consumption .Empowering Developers to Estimate App...

  • Empowering Developers to Estimate App EnergyConsumption

    Radhika Mittal, Aman Kansal, Ranveer ChandraIIT Kharagpur, Kharagpur, India Microsoft Research, Redmond, WA

    radhikamittal.iitkgp@gmail.com {kansal,ranveer}@microsoft.com

    ABSTRACTBattery life is a critical performance and user experience metric onmobile devices. However, it is difficult for app developers to mea-sure the energy used by their apps, and to explore how energy usemight change with conditions that vary outside of the developerscontrol such as network congestion, choice of mobile operator, anduser settings for screen brightness. We present an energy emula-tion tool that allows developers to estimate the energy use for theirmobile apps on their development workstation itself. The proposedtechniques scale the emulated resources including the processingspeed and network characteristics to match the app behavior to thaton a real mobile device. We also enable exploring multiple op-erating conditions that the developers cannot easily reproduce intheir lab. The estimation of energy relies on power models for var-ious components, and we also add new power models for compo-nents not modeled in prior works such as AMOLED displays. Wealso present a prototype implementation of this tool and evaluate itthrough comparisons with real device energy measurements.

    Categories and Subject DescriptorsC.4 [Computer Systems Organization]: Performance of Systems;D.2.2 [Software]: Software EngineeringDesign Tools and Tech-niques

    General TermsAlgorithms, Experimentation, Measurement, Performance, Design

    Keywordsenergy efficiency, display power, developer tools

    1. INTRODUCTIONPoorly written apps can sap 30 to 40% of a phones battery [10].

    Battery lifetime is a common cause of frustration in smartphoneusers. Several efforts in research and industry are investigatingtechniques to improve the battery life, such as through use of higherbattery density, dedicated low power processors for offloading com-putations from the application processor, or even off-loading to the

    Permission to make digital or hard copies of all or part of this work forpersonal or classroom use is granted without fee provided that copies arenot made or distributed for profit or commercial advantage and that copiesbear this notice and the full citation on the first page. To copy otherwise, torepublish, to post on servers or to redistribute to lists, requires prior specificpermission and/or a fee.MobiCom12, August 2226, 2012, Istanbul, Turkey.Copyright 2012 ACM 978-1-4503-1159-5/12/08 ...$15.00.

    cloud. However, such platform layer improvements do not sufficeby themselves since poorly written software can callously eat intothe resultant extra battery juice.

    A significant portion of the battery is used when the phone isactively used in interactive foreground apps. While OS designersspend significant effort in optimizing the battery impact of back-ground OS services, the foreground apps are largely controlled byapp developers. Very few tools are available for developers to im-prove the energy efficiency of their apps. In fact, most developersare not even aware of the amount of energy their app consumes un-der a typical usage pattern. While they could use a power meterto measure the energy draw for their app during test runs, such anapproach is not used in practice because it is tedious and expensive.It is very difficult to perform these measurements for multiple de-vices, network conditions, user settings for screen brightness, andso on. Even if measurements are performed, they are biased to thenetwork conditions at the developers location. Measurements bythemselves do not give any insight into how much each component(CPU, network, or display) contributed to battery drain, making itharder to focus the optimization effort.

    One alternative for developers is to use the battery use tool onAndroid phones, the Nokia Energy Profiler (NEP) or power mod-eling tools such as eProf [15]. While these tools can circumventthe need for power metering equipment, they are still limited inexploring multiple configurations, user settings, or network con-ditions. The profiled behavior remains biased to conditions at thedevelopers location.

    In this paper we present WattsOn, a system that allows a devel-oper to estimate the energy consumed by her app in the develop-ment environment itself. WattsOn can (i) identify energy hungrysegments during the app run, and (ii) determine which component(display, network or CPU) consumes the most energy. For instance,an developer may determine if the battery drain is dominated by thedownload of a high resolution image is consuming more energy, theapp display using a white background, or the computation that theapp is doing. The developer may compare the energy impact ofdesign choices such as developing a portable browser based appthat downloads most content on the fly or a native app that onlydownloads incremental updates.

    Furthermore, WattsOn allows what-if analyses, to answer ques-tions, such as: How much energy is consumed on a different phonemodel? How does energy consumption change if the user has a 2Gor a 3G network? What if the brightness is set to high? or, What ifthe app is used under a low signal strength area?

    Our current WattsOn prototype emulates the power consumptionfor the display, network, and CPU, since these are the dominantenergy consumers on a smartphone, consuming between 800mWto 1500mW in their highest power states. Other components such

  • as the GPU (peaking to 250mW - 350mW) and A-GPS (160mW- 350mW, across various chip sets), while significant, account fora smaller fraction of the total power consumption for interactiveforeground apps. These components can be added to our frame-work provided appropriate resource consumption counters, relevantpower models, and emulation strategies are available.

    Specifically, we make the following contributions.First, we present the first system that can estimate an apps en-

    ergy consumption in different operating conditions (carrier, signalstrength, brightness) without requiring expensive lab equipmentand explicit measurements with repeated runs for each operatingcondition.

    Second, we enable energy to be profiled within the developmentenvironment without requiring a specific mobile device. To achievethis, we scale the development machines resources including theCPU and the network to match the characteristics of a real phone.The app thus behaves as if on a real phone and its energy impact onall components, such as idle display power-on time while waitingfor a download, is correctly emulated. The combination of powermodeling and resource scaling required for WattsOn design impliesthat only those power models and scaling techniques can be ap-plied that are mutually compatible. WattsOn allows the app to useexternal resources such as web services from the Internet. These re-quirements are in contrast to other energy emulators, such as PowerTOSSIM [22], based on event driven simulation, where all com-municating nodes are within the simulator. Hence techniques suchas virtual clocks cannot be applied in WattsOn for resource scal-ing. Processor power models based on architecture specific perfor-mance counters are also not amenable to use with scaled resources.

    Third, we expand the catalogue of power models available formobile devices. Power models for many components have beenestablished previously in [2,4,6,8,17,20] at varying levels of com-plexity and accuracy. We use previously proposed models for CPUand WiFi. For displays, while LCD and OLED displays have beenmodeled in detail [5, 25], prior work did not provide a model forAMOLED displays. Hence we develop a new power model forAMOLED. For cellular networks, while the power model exists [18],measurements for model parameters with varying signal strengthsand operators were not available in published literature. We per-form new measurements to fill in some of the missing data.

    Finally, we have validated WattsOn with multiple applications,devices, network conditions, and carrier networks. Average energyerror varied from 4% to 9% across the apps tested. The accuracyof energy estimation when compared with the variability in hard-ware energy measurement for the same task over multiple runs indi-cates that WattsOn can offer a better energy estimate by eliminatingseveral variable factors such as background activity on the mobiledevice. We also show how the component energy break-down pro-duced by WattsOn can help application designers.

    While the concepts of power modeling and resource scaling havebeen developed before, to the best of our knowledge, this is thefirst work that investigates the suitable selection of modeling andscaling techniques for development-time mobile app energy emu-lation, and validates their use through fine grained hardware mea-surements.

    2. WattsOn SYSTEM DESIGNMost mobile development toolchains provide an emulator to as-

    sist in app development such as the Android Emulator, the iOS Sim-ulator, or the Windows Phone Emulator. While the emulators donot accurately reproduce all mobile device characteristics, the lowoverhead of their use makes them very beneficial for a variety of

    tests. WattsOn extends existing emulators to estimate app batteryconsumption.

    The two major techniques used in WattsOn design are powermodeling and resource scaling.

    Power Modeling: One way to measure app energy is to usepower metering equipment [7]. However, requiring every app de-veloper to install such equipment is an arduous ask. Also, measure-ments have variability due to differences in network conditions,background activities running on the phone, not all of which candisabled by the developer. For instance, the measured energy afteran energy reducing change made by the developer may turn out tobe higher than before the cha