ABSTRACT
While in the past the primary goal to optimize software was the run time optimization, nowadays there is a growing awareness of the need to reduce energy consumption. Additionally, a growing number of developers wish to become more energy-aware when programming and feel a lack of tools and the knowledge to do so.
In this paper we define a ranking of energy efficiency in programming languages. We consider a set of computing problems implemented in ten well-known programming languages, and monitored the energy consumed when executing each language. Our preliminary results show that although the fastest languages tend to be the lowest consuming ones, there are other interesting cases where slower languages are more energy efficient than faster ones.
- Sarah Abdulsalam, Ziliang Zong, Qijun Gu, and Meikang Qiu. 2015. Using the Greenup, Powerup, and Speedup metrics to evaluate software energy efficiency. In Proc. of the 6th Int. Green and Sustainable Computing Conf. IEEE, 1--8. Google ScholarDigital Library
- Tarsila Bessa, Pedro Quintão, Michael Frank, and Fernando Magno Quintão Pereira. 2016. JetsonLeap: A Framework to Measure Energy-Aware Code Optimizations in Embedded and Heterogeneous Systems. In Proc. of the 20th Brazilian Symposium on Programming Languages, Fernando Castor and Yu David Liu (Eds.). Springer Int. Publishing, 16--30.Google ScholarCross Ref
- Wei-Ngan Chin, Huu Hai Nguyen, Shengchao Qin, and Martin Rinard. 2005. Memory Usage Verification for OO Programs. In Static Analysis: 12th Int. Symposium, SAS 2005, London, UK, September 7--9, 2005. Proceedings, Chris Hankin and Igor Siveroni (Eds.). Springer Berlin Heidelberg, 70--86. Google ScholarDigital Library
- Thomas D Cook and Donald T Campbell. 1979. Quasi-experimentation: design & analysis issues for field settings. Houghton Mifflin.Google Scholar
- Marco Couto, Tiago Carção, Jácome Cunha, João Paulo Fernandes, and João Saraiva. 2014. Detecting Anomalous Energy Consumption in Android Applications. In Programming Languages: 18th Brazilian Symposium, SBLP 2014, Maceio, Brazil, October 2--3, 2014. Proceedings, Fernando Magno Quintão Pereira (Ed.). Springer Int. Publishing, 77--91.Google Scholar
- Martin Dimitrov, Carl Strickland, Seung-Woo Kim, Karthik Kumar, and Kshitij Doshi. 2015. Intel® Power Governor. https://software.intel.com/en-us/articles/intel-power-governor. (2015). Accessed: 2015-10-12.Google Scholar
- Neville Grech, Kyriakos Georgiou, James Pallister, Steve Kerrison, Jeremy Morse, and Kerstin Eder. 2015. Static Analysis of Energy Consumption for LLVM IR Programs. In Proc. of the 18th Int. Workshop on Software and Compilers for Embedded Systems (SCOPES '15). ACM, 12--21. Google ScholarDigital Library
- Marcus Hähnel, Björn Döbel, Marcus Völp, and Hermann Härtig. 2012. Measuring energy consumption for short code paths using RAPL. SIGMETRICS Performance Evaluation Review 40, 3 (2012), 13--17. Google ScholarDigital Library
- Shuai Hao, Ding Li, William G. J. Halfond, and Ramesh Govindan. 2013. Estimating Mobile Application Energy Consumption Using Program Analysis. In Proc. of the 2013 Int. Conf. on Software Engineering (ICSE '13). IEEE Press, 92--101. Google ScholarDigital Library
- Samir Hasan, Zachary King, Munawar Hafiz, Mohammed Sayagh, Bram Adams, and Abram Hindle. 2016. Energy profiles of java collections classes. In Proc. of the 38th Int. Conf. on Software Engineering. ACM, 225--236. Google ScholarDigital Library
- Andrei Homescu and Alex Şuhan. 2011. HappyJIT: A Tracing JIT Compiler for PHP. SIGPLAN Not. 47, 2 (Oct. 2011), 25--36. Google ScholarDigital Library
- Reyhaneh Jabbarvand, Alireza Sadeghi, Hamid Bagheri, and Sam Malek. 2016. Energy-aware Test-suite Minimization for Android Apps. In Proc. of the 25th Int. Symposium on Software Testing and Analysis (ISSTA 2016). 425--436. Google ScholarDigital Library
- Ding Li, Shuai Hao, William GJ Halfond, and Ramesh Govindan. 2013. Calculating source line level energy information for android applications. In Proc. of the 2013 Int. Symposium on Software Testing and Analysis. ACM, 78--89. Google ScholarDigital Library
- Ding Li, Yuchen Jin, Cagri Sahin, James Clause, and William GJ Halfond. 2014. Integrated energy-directed test suite optimization. In Proc. of the 2014 Int. Symposium on Software Testing and Analysis. ACM, 339--350. Google ScholarDigital Library
- Wing Hang Li, David R. White, and Jeremy Singer. 2013. JVM-hosted Languages: They Talk the Talk, but Do They Walk the Walk?. In Proc. of the 2013 Int. Conf. on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools (PPPJ '13). ACM, 101--112. Google ScholarDigital Library
- Luís Gabriel Lima, Gilberto Melfe, Francisco Soares-Neto, Paulo Lieuthier, João Paulo Fernandes, and Fernando Castor. 2016. Haskell in Green Land: Analyzing the Energy Behavior of a Purely Functional Language. In Proc. of the 23rd IEEE Int. Conf. on Software Analysis, Evolution, and Reengineering (SANER'2016). IEEE, 517--528.Google ScholarCross Ref
- Mario Linares-Vásquez, Gabriele Bavota, Carlos Bernal-Cárdenas, Rocco Oliveto, Massimiliano Di Penta, and Denys Poshyvanyk. 2014. Mining energy-greedy API usage patterns in Android apps: an empirical study. In Proc. of the 11th Working Conf. on Mining Software Repositories. ACM, 2--11. Google ScholarDigital Library
- Kenan Liu, Gustavo Pinto, and Yu David Liu. 2015. Data-oriented characterization of application-level energy optimization. In Fundamental Approaches to Software Engineering. Springer, 316--331.Google Scholar
- Dustin McIntire, Thanos Stathopoulos, Sasank Reddy, Thomas Schmidt, and William J. Kaiser. 2012. Energy-Efficient Sensing with the Low Power, Energy Aware Processing (LEAP) Architecture. ACM Trans. Embed. Comput. Syst. 11, 2, Article 27 (July 2012), 36 pages. Google ScholarDigital Library
- Floréal Morandat, Brandon Hill, Leo Osvald, and Jan Vitek. 2012. Evaluating the Design of the R Language: Objects and Functions for Data Analysis. In Proc. of the 26th European Conf. on Object-Oriented Programming (ECOOP'12). Springer-Verlag, 104--131. Google ScholarDigital Library
- Rui Pereira, Tiago Carção, Marco Couto, Jácome Cunha, João Paulo Fernandes, and João Saraiva. 2017. Helping Programmers Improve the Energy Efficiency of Source Code. In Proceedings of the 39th International Conference on Software Engineering Companion (ICSE-C '17). 238--240. Google ScholarDigital Library
- Rui Pereira, Marco Couto, João Saraiva, Jácome Cunha, and João Paulo Fernandes. 2016. The Influence of the Java Collection Framework on Overall Energy Consumption. In Proc. of the 5th Int. Workshop on Green and Sustainable Software (GREENS '16). ACM, 15--21. Google ScholarDigital Library
- Gustavo Pinto, Fernando Castor, and Yu David Liu. 2014. Mining questions about software energy consumption. In Proc. of the 11th Working Conf. on Mining Software Repositories. ACM, 22--31. Google ScholarDigital Library
- Gustavo Pinto, Fernando Castor, and Yu David Liu. 2014. Understanding energy behaviors of thread management constructs. In Proc. of the 2014 ACM Int. Conf. on Object Oriented Programming Systems Languages & Applications. ACM, 345--360. Google ScholarDigital Library
- G. Pinto, K. Liu, F. Castor, and Y. D. Liu. 2016. A Comprehensive Study on the Energy Efficiency of Java's Thread-Safe Collections. (Oct 2016), 20--31.Google Scholar
- Efraim Rotem, Alon Naveh, Avinash Ananthakrishnan, Eliezer Weissmann, and Doron Rajwan. 2012. Power-Management Architecture of the Intel Microarchitecture Code-Named Sandy Bridge. IEEE Micro 32, 2 (2012), 20--27. Google ScholarDigital Library
- Cagri Sahin, Furkan Cayci, Irene Lizeth Manotas Gutierrez, James Clause, Fouad Kiamilev, Lori Pollock, and Kristina Winbladh. 2012. Initial explorations on design pattern energy usage. In Green and Sustainable Software (GREENS), 2012 First Int. Workshop on. IEEE, 55--61. Google ScholarDigital Library
- Cagri Sahin, Lori Pollock, and James Clause. 2014. How do code refactorings affect energy usage?. In Proc. of the 8th ACM/IEEE Int. Symposium on Empirical Software Engineering and Measurement. ACM, 36. Google ScholarDigital Library
- Cagri Sahin, Philip Tornquist, Ryan McKenna, Zachary Pearson, and James Clause. 2014. How Does Code Obfuscation Impact Energy Usage?. In Software Maintenance (ICSM), 2013 29th IEEE Int. Conf. on. IEEE. Google ScholarDigital Library
- Vincent St-Amour, Sam Tobin-Hochstadt, and Matthias Felleisen. 2012. Optimization Coaching: Optimizers Learn to Communicate with Programmers. In Proc. of the ACM Int. Conf. on Object Oriented Programming Systems Languages and Applications (OOPSLA '12). ACM, 163--178. Google ScholarDigital Library
- Anne E Trefethen and Jeyarajan Thiyagalingam. 2013. Energy-aware software: Challenges, opportunities and strategies. Journal of Computational Science 4, 6 (2013), 444--449.Google ScholarCross Ref
- Kevin Williams, Jason McCandless, and David Gregg. 2010. Dynamic Interpretation for Dynamic Scripting Languages. In Proc. of the 8th Annual IEEE/ACM Int. Symposium on Code Generation and Optimization (CGO '10). ACM, 278--287. Google ScholarDigital Library
- Tomofumi Yuki and Sanjay Rajopadhye. 2014. Folklore confirmed: Compiling for speed= compiling for energy. In Languages and Compilers for Parallel Computing. Springer, 169--184.Google Scholar
- Lide Zhang, Birjodh Tiwana, Zhiyun Qian, Zhaoguang Wang, Robert P. Dick, Zhuoqing Morley Mao, and Lei Yang. Accurate online power estimation and automatic battery behavior based power model generation for smartphones. In Proc. of the 8th Int. Conf. on Hardware/Software Codesign and System Synthesis, CODES+ISSS 2010, part of ESWeek '10 Sixth Embedded Systems Week, Scottsdale, AZ, USA, October 24--28, 2010. Google ScholarDigital Library
Index Terms
- Towards a Green Ranking for Programming Languages
Recommendations
Analyzing Programming Languages' Energy Consumption: An Empirical Study
PCI '17: Proceedings of the 21st Pan-Hellenic Conference on InformaticsMotivation: The energy efficiency of it-related products, from the software perspective, has gained vast popularity the recent years and paved a new emerging research field. However, there is limited number of research works regarding the energy ...
Impact of programming languages on energy consumption for mobile devices
ESEC/FSE 2020: Proceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software EngineeringMobile devices are part of our life and their energy consumption poses significant limits to their further adoption and usage. In this work, we conduct a meta-analytical review of the impact of programming languages on the energy consumption of such ...
Energy efficiency across programming languages: how do energy, time, and memory relate?
SLE 2017: Proceedings of the 10th ACM SIGPLAN International Conference on Software Language EngineeringThis paper presents a study of the runtime, memory usage and energy consumption of twenty seven well-known software languages. We monitor the performance of such languages using ten different programming problems, expressed in each of the languages. ...
Comments