skip to main content
10.1145/3125374.3125382acmotherconferencesArticle/Chapter ViewAbstractPublication PagessblpConference Proceedingsconference-collections
research-article

Towards a Green Ranking for Programming Languages

Authors Info & Claims
Published:21 September 2017Publication History

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.

References

  1. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  2. 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 ScholarGoogle ScholarCross RefCross Ref
  3. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  4. Thomas D Cook and Donald T Campbell. 1979. Quasi-experimentation: design & analysis issues for field settings. Houghton Mifflin.Google ScholarGoogle Scholar
  5. 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 ScholarGoogle Scholar
  6. 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 ScholarGoogle Scholar
  7. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  8. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  9. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  10. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  11. Andrei Homescu and Alex Şuhan. 2011. HappyJIT: A Tracing JIT Compiler for PHP. SIGPLAN Not. 47, 2 (Oct. 2011), 25--36. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  13. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  14. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  15. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  16. 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 ScholarGoogle ScholarCross RefCross Ref
  17. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  18. 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 ScholarGoogle Scholar
  19. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  20. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  21. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  22. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  23. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  24. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  25. 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 ScholarGoogle Scholar
  26. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  27. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  28. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  29. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  30. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  31. Anne E Trefethen and Jeyarajan Thiyagalingam. 2013. Energy-aware software: Challenges, opportunities and strategies. Journal of Computational Science 4, 6 (2013), 444--449.Google ScholarGoogle ScholarCross RefCross Ref
  32. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  33. 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 ScholarGoogle Scholar
  34. 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 ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Towards a Green Ranking for Programming Languages

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Published in

        cover image ACM Other conferences
        SBLP '17: Proceedings of the 21st Brazilian Symposium on Programming Languages
        September 2017
        87 pages
        ISBN:9781450353892
        DOI:10.1145/3125374

        Copyright © 2017 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 21 September 2017

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article
        • Research
        • Refereed limited

        Acceptance Rates

        Overall Acceptance Rate22of50submissions,44%

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader