From benchmarks to real apps: Exploring the energy impacts of performance-directed changes

We considered four performance tips, eight Android applications, 17 usage scenarios, and two platforms.The performance tips are unlikely to impact the energy usage of Android applications.The impact of change on battery life is negligible for the performance tips.We demonstrate the particular importance of empirical studies using real applications. Battery life is an increasing concern for mobile devices. Recent studies have provided initial evidence that applying performance tips is an effective mechanism for decreasing energy usage. However, the generalizability of such studies to real applications is unclear. We aim to provide deeper insights into whether mobile application developers can effectively reduce the energy consumption of their applications by applying performance tips.We conducted an empirical study to investigate the energy impacts of applying four commonly suggested performance tips to eight real Android applications. Considered performance tips are unlikely to impact energy usage in a statistically significant manner and, even when the impacts are statistically significant, the change in battery life is around 1%. Mobile application developers cannot expect to improve the energy usage of their applications as a by product of performance improvements. Tools and techniques that specifically target energy usage are necessary for significant improvements.

[1]  Kathryn S. McKinley,et al.  The latency, accuracy, and battery (LAB) abstraction: programmer productivity and energy efficiency for continuous mobile context sensing , 2013, OOPSLA.

[2]  Gabriele Bavota,et al.  Mining energy-greedy API usage patterns in Android apps: an empirical study , 2014, MSR 2014.

[3]  Samuel P. Midkiff,et al.  What is keeping my phone awake?: characterizing and detecting no-sleep energy bugs in smartphone apps , 2012, MobiSys '12.

[4]  Mahmut T. Kandemir,et al.  Compiler-directed high-level energy estimation and optimization , 2005, TECS.

[5]  Ding Li,et al.  An investigation into energy-saving programming practices for Android smartphone app development , 2014, GREENS 2014.

[6]  Lionel C. Briand,et al.  A practical guide for using statistical tests to assess randomized algorithms in software engineering , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[7]  Luca Ardito,et al.  Definition, implementation and validation of energy code smells: an exploratory study on an embedded system , 2013 .

[8]  Song Liu,et al.  Flikker: saving DRAM refresh-power through critical data partitioning , 2011, ASPLOS XVI.

[9]  Abram Hindle,et al.  Green mining: energy consumption of advertisement blocking methods , 2014, GREENS 2014.

[10]  Todd D. Millstein,et al.  RERAN: Timing- and touch-sensitive record and replay for Android , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[11]  Xiao Ma,et al.  eDoctor : Automatically Diagnosing Abnormal Battery Drain Issues on Smartphones , 2013 .

[12]  Woongki Baek,et al.  Green: a framework for supporting energy-conscious programming using controlled approximation , 2010, PLDI '10.

[13]  Ding Li,et al.  Detecting Display Energy Hotspots in Android Apps , 2015, ICST.

[14]  Sona Mundody,et al.  Evaluating the Impact of Android Best Practices on Energy Consumption , 2014 .

[15]  Bharat K. Bhargava,et al.  A Survey of Computation Offloading for Mobile Systems , 2012, Mobile Networks and Applications.

[16]  Jie Liu,et al.  LittleRock: Enabling Energy-Efficient Continuous Sensing on Mobile Phones , 2011, IEEE Pervasive Computing.

[17]  Ding Li,et al.  Making web applications more energy efficient for OLED smartphones , 2014, ICSE.

[18]  William G. J. Halfond,et al.  Truth in Advertising: The Hidden Cost of Mobile Ads for Software Developers , 2015, 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering.

[19]  A. Vargha,et al.  A Critique and Improvement of the CL Common Language Effect Size Statistics of McGraw and Wong , 2000 .

[20]  Michael Cohen,et al.  Energy types , 2012, OOPSLA '12.

[21]  Lori L. Pollock,et al.  Investigating the impacts of web servers on web application energy usage , 2013, 2013 2nd International Workshop on Green and Sustainable Software (GREENS).

[22]  Suman Roychoudhury,et al.  Choosing the "Best" Sorting Algorithm for Optimal Energy Consumption , 2009, ICSOFT.

[23]  Ting Cao,et al.  The Yin and Yang of power and performance for asymmetric hardware and managed software , 2012, 2012 39th Annual International Symposium on Computer Architecture (ISCA).

[24]  Yepang Liu,et al.  Where has my battery gone? Finding sensor related energy black holes in smartphone applications , 2013, 2013 IEEE International Conference on Pervasive Computing and Communications (PerCom).

[25]  Lisane B. de Brisolara,et al.  Analysis and Evaluation of the Android Best Practices Impact on the Efficiency of Mobile Applications , 2013, 2013 III Brazilian Symposium on Computing Systems Engineering.

[26]  Christian Bunse,et al.  On the Energy Consumption of Design Patterns , 2013, Softwaretechnik-Trends.

[27]  Dan Grossman,et al.  EnerJ: approximate data types for safe and general low-power computation , 2011, PLDI '11.

[28]  Chen-Mou Cheng,et al.  COCA: Computation Offload to Clouds Using AOP , 2012, 2012 12th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing (ccgrid 2012).

[29]  Sam Malek,et al.  Component-Level Energy Consumption Estimation for Distributed Java-Based Software Systems , 2008, CBSE.

[30]  Lam H. Nguyen,et al.  Stereo matching: performance study of two global algorithms , 2011, Defense + Commercial Sensing.

[31]  Mahmut T. Kandemir,et al.  Energy-conscious compilation based on voltage scaling , 2002, LCTES/SCOPES '02.

[32]  Lori L. Pollock,et al.  How do code refactorings affect energy usage? , 2014, ESEM '14.

[33]  Gustavo Pinto,et al.  Mining questions about software energy consumption , 2014, MSR 2014.

[34]  Yu David Liu,et al.  Green Streams for data-intensive software , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[35]  Luis Ceze,et al.  Architecture support for disciplined approximate programming , 2012, ASPLOS XVII.

[36]  Amin Vahdat,et al.  ECOSystem: managing energy as a first class operating system resource , 2002, ASPLOS X.

[37]  Luis Ceze,et al.  Characterizing the Performance and Energy Efficiency of Lock-Free Data Structures , 2011, 2011 15th Workshop on Interaction between Compilers and Computer Architectures.

[38]  Yung-Hsiang Lu,et al.  Automatic Run-Time Selection of Power Policies for Operating Systems , 2006, Proceedings of the Design Automation & Test in Europe Conference.

[39]  Yu David Liu,et al.  Energy-efficient synchronization through program patterns , 2012, 2012 First International Workshop on Green and Sustainable Software (GREENS).

[40]  Henri E. Bal,et al.  Cuckoo: A Computation Offloading Framework for Smartphones , 2010, MobiCASE.

[41]  Ding Li,et al.  An Empirical Study of the Energy Consumption of Android Applications , 2014, 2014 IEEE International Conference on Software Maintenance and Evolution.

[42]  Lori L. Pollock,et al.  SEEDS: a software engineer's energy-optimization decision support framework , 2014, ICSE.

[43]  Krisztián Flautner,et al.  Automatic Performance Setting for Dynamic Voltage Scaling , 2001, MobiCom '01.

[44]  William G. J. Halfond,et al.  How Does Code Obfuscation Impact Energy Usage? , 2014, 2014 IEEE International Conference on Software Maintenance and Evolution.

[45]  Abram Hindle Green mining: A methodology of relating software change to power consumption , 2012, 2012 9th IEEE Working Conference on Mining Software Repositories (MSR).

[46]  Ding Li,et al.  Integrated energy-directed test suite optimization , 2014, ISSTA 2014.

[47]  Y. N. Srikant,et al.  Compiler-directed frequency and voltage scaling for a multiple clock domain microarchitecture , 2008, CF '08.

[48]  Soheil Ghiasi,et al.  Efficient and scalable compiler-directed energy optimization for realtime applications , 2007 .

[49]  Lori L. Pollock,et al.  Initial explorations on design pattern energy usage , 2012, 2012 First International Workshop on Green and Sustainable Software (GREENS).

[50]  Alexander Chatzigeorgiou,et al.  Energy Consumption Analysis of Design Patterns , 2007 .