Towards using Memoization for Saving Energy in Android

Over the last few years, the interest in the analysis of the energy consumption of Android applications has been increasing significantly. Indeed, there are a considerable number of studies which aim at analyzing the energy consumption in the Android ecosystem, such as measuring/estimating the energy consumed by an application or block of code, or even detecting energy expensive coding patterns or APIs. In this paper, we present an initial study of the impact of memoization in the energy consumption of Android applications. We compare implementations of 18 methods from different applications, with and without using memoization, and measure the energy consumption of both of them. The results show that using memoization can be a good approach for saving energy, since 13 of those methods decreased their energy consumption.

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

[2]  Andy P. Field,et al.  Discovering Statistics Using SPSS , 2000 .

[3]  Alireza Sadeghi,et al.  EcoDroid: An Approach for Energy-Based Ranking of Android Apps , 2015, 2015 IEEE/ACM 4th International Workshop on Green and Sustainable Software.

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

[5]  Luis Cruz,et al.  Performance-Based Guidelines for Energy Efficient Mobile Applications , 2017, 2017 IEEE/ACM 4th International Conference on Mobile Software Engineering and Systems (MOBILESoft).

[6]  Ramesh Govindan,et al.  Estimating Android applications' CPU energy usage via bytecode profiling , 2012, 2012 First International Workshop on Green and Sustainable Software (GREENS).

[7]  Jacob Cohen Statistical Power Analysis for the Behavioral Sciences , 1969, The SAGE Encyclopedia of Research Design.

[8]  Matti Siekkinen,et al.  Modeling, Profiling, and Debugging the Energy Consumption of Mobile Devices , 2015, ACM Comput. Surv..

[9]  Gwenn W. Gröndal,et al.  Meta-analytic procedures for social research , 1993 .

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

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

[12]  Abhik Roychoudhury,et al.  Future of Mobile Software for Smartphones and Drones: Energy and Performance , 2017, 2017 IEEE/ACM 4th International Conference on Mobile Software Engineering and Systems (MOBILESoft).

[13]  Rui Pereira,et al.  GreenDroid: A tool for analysing power consumption in the android ecosystem , 2015, 2015 IEEE 13th International Scientific Conference on Informatics.

[14]  Abhik Roychoudhury,et al.  Automated Re-factoring of Android Apps to Enhance Energy-Efficiency , 2016, 2016 IEEE/ACM International Conference on Mobile Software Engineering and Systems (MOBILESoft).

[15]  R. D'Agostino An omnibus test of normality for moderate and large size samples , 1971 .

[16]  Giovanni Agosta,et al.  Automatic memoization for energy efficiency in financial applications , 2012, Sustain. Comput. Informatics Syst..

[17]  R. Rosenthal Parametric measures of effect size. , 1994 .

[18]  Shinji Kusumoto,et al.  Towards purity-guided refactoring in Java , 2015, 2015 IEEE International Conference on Software Maintenance and Evolution (ICSME).

[19]  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).

[20]  Ramesh Govindan,et al.  Calculating source line level energy information for Android applications , 2013, ISSTA.

[21]  Dong Yan,et al.  Lightweight energy consumption analysis and prediction for Android applications , 2018, Sci. Comput. Program..

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

[23]  S. Sawilowsky New Effect Size Rules of Thumb , 2009 .

[24]  Fernando Castor,et al.  Characterizing the Energy Efficiency of Java’s Thread-Safe Collections in a Multi-Core Environment , 2014 .

[25]  Ramesh Govindan,et al.  Estimating mobile application energy consumption using program analysis , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[26]  Shinji Kusumoto,et al.  Revealing Purity and Side Effects on Functions for Reusing Java Libraries , 2015, ICSR.

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

[28]  Beat Kleiner,et al.  Graphical Methods for Data Analysis , 1983 .

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