Energy consumption in Java: An early experience

There has been a 10,000-fold increase in performance of supercomputers since 1992 but only 300-fold improvement in performance per watt. Dynamic adaptation of hardware techniques such as fine-grain clock gating, power gating and dynamic voltage/frequency scaling, are used for many years to improve the computer's energy efficiency. However, recent demands of exascale computation, as well as the increasing carbon footprint, require new breakthrough to make ICT systems more energy efficient. Energy efficient software has not been well studied in the last decade. In this paper, we take an early step to investigate the energy efficiency of Java which is one of the most common languages used in ICT systems. We evaluate energy consumption of data types, operators, control statements, exception, and object in Java at a granular level. Intel Running Average Power Limit (RAPL) technology is applied to measure the relative power consumption of small code snippets. Several observations are found, and these results will help in standardizing the energy consumption traits of Java which can be leveraged by software developers to generate energy efficient code in future.

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

[2]  Uwe Aßmann,et al.  Towards Energy Auto Tuning , 2010 .

[3]  Suman Roychoudhury,et al.  Exploring the Energy Consumption of Data Sorting Algorithms in Embedded and Mobile Environments , 2009, 2009 Tenth International Conference on Mobile Data Management: Systems, Services and Middleware.

[4]  Thomas D. Burd,et al.  Energy efficient CMOS microprocessor design , 1995, Proceedings of the Twenty-Eighth Annual Hawaii International Conference on System Sciences.

[5]  Jan M. Rabaey,et al.  Which has greater potential power impact: high-level design and algorithms or innovative low power technology? (panel) , 1996, International Symposium on Low Power Electronics and Design.

[6]  Qijun Gu,et al.  Program energy efficiency: The impact of language, compiler and implementation choices , 2014, International Green Computing Conference.

[7]  Junya Michanan,et al.  Predicting data structures for energy efficient computing , 2015, 2015 Sixth International Green and Sustainable Computing Conference (IGSC).

[8]  Sparsh Mittal,et al.  A survey of techniques for improving energy efficiency in embedded computing systems , 2014, Int. J. Comput. Aided Eng. Technol..

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

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

[11]  Stephen Berard,et al.  Implications of Historical Trends in the Electrical Efficiency of Computing , 2011, IEEE Annals of the History of Computing.

[12]  San Murugesan,et al.  Harnessing Green IT: Principles and Practices , 2008, IT Professional.

[13]  Eran Yahav,et al.  Chameleon: adaptive selection of collections , 2009, PLDI '09.

[14]  Uwe Aßmann,et al.  Approximating quality contracts for energy auto-tuning software , 2012, 2012 First International Workshop on Green and Sustainable Software (GREENS).

[15]  Shin'ichiro Mutoh,et al.  1-V power supply high-speed digital circuit technology with multithreshold-voltage CMOS , 1995, IEEE J. Solid State Circuits.

[16]  Abram Hindle,et al.  Energy Profiles of Java Collections Classes , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE).

[17]  Liu Kenan,et al.  A Comprehensive Study on the Energy Efficiency of Java's Thread-Safe Collections , 2016 .

[18]  Jack Shirazi Java Performance Tuning , 2000 .

[19]  R.W. Brodersen,et al.  A dynamic voltage scaled microprocessor system , 2000, IEEE Journal of Solid-State Circuits.

[20]  Anantha P. Chandrakasan,et al.  Low-power CMOS digital design , 1992 .