Helping Programmers Improve the Energy Efficiency of Source Code

This paper briefly proposes a technique to detect energy inefficient fragments in the source code of a software system. Test cases are executed to obtain energy consumption measurements, and a statistical method, based on spectrum-basedfault localization, is introduced to relate energy consumption to the system's source code. The result of our technique is an energy ranking of source code fragments pointing developers to possible energy leaks in their code.

[1]  Abram Hindle Green Software Engineering: The Curse of Methodology , 2016, 2016 IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER).

[2]  Peter Zoeteweij,et al.  Spectrum-Based Multiple Fault Localization , 2009, 2009 IEEE/ACM International Conference on Automated Software Engineering.

[3]  João Paulo Fernandes,et al.  Haskell in Green Land: Analyzing the Energy Behavior of a Purely Functional Language , 2016, 2016 IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER).

[4]  Joost Visser,et al.  Seflab: A lab for measuring software energy footprints , 2013, 2013 2nd International Workshop on Green and Sustainable Software (GREENS).

[5]  Jácome Cunha,et al.  Detecting Anomalous Energy Consumption in Android Applications , 2014, SBLP.

[6]  Anne E. Trefethen,et al.  Energy-aware software: Challenges, opportunities and strategies , 2013, J. Comput. Sci..

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

[8]  R. Real,et al.  The Probabilistic Basis of Jaccard's Index of Similarity , 1996 .

[9]  Gustavo Pinto,et al.  Understanding energy behaviors of thread management constructs , 2014, OOPSLA 2014.

[10]  Tomofumi Yuki,et al.  Folklore Confirmed: Compiling for Speed = Compiling for Energy , 2013, LCPC.

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

[12]  Patricia Lago,et al.  Challenges and Opportunities for Sustainable Software , 2015, 2015 IEEE/ACM 5th International Workshop on Product Line Approaches in Software Engineering.

[13]  Jácome Cunha,et al.  The Influence of the Java Collection Framework on Overall Energy Consumption , 2016, 2016 IEEE/ACM 5th International Workshop on Green and Sustainable Software (GREENS).

[14]  Qijun Gu,et al.  Using the Greenup, Powerup, and Speedup metrics to evaluate software energy efficiency , 2015, 2015 Sixth International Green and Sustainable Computing Conference (IGSC).

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

[16]  Gustavo Pinto,et al.  Data-Oriented Characterization of Application-Level Energy Optimization , 2015, FASE.

[17]  Michael I. Jordan,et al.  Statistical Debugging of Sampled Programs , 2003, NIPS.

[18]  A.J.C. van Gemund,et al.  On the Accuracy of Spectrum-based Fault Localization , 2007, Testing: Academic and Industrial Conference Practice and Research Techniques - MUTATION (TAICPART-MUTATION 2007).

[19]  Abram Hindle,et al.  Green mining: a methodology of relating software change and configuration to power consumption , 2013, Empirical Software Engineering.

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

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

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

[23]  Shivakant Mishra,et al.  Optimizing power consumption in multicore smartphones , 2016, J. Parallel Distributed Comput..