Energy-Delay investigation of Remote Inter-Process communication technologies

Abstract Most modern information technology devices use the Internet for creating, reading, updating, and deleting shared data through remote inter-process communication ( ipc ). To evaluate the energy consumption of ipc technologies and the corresponding run-time performance implications, we performed an empirical study on popular ipc systems implemented in Go, Java, JavaScript, Python, php , Ruby, and C#. We performed our experiments on computer platforms equipped with Intel and arm processors. We observed that JavaScript and Go implementations of g rpc offer the lowest energy consumption and execution time. Furthermore, by analysing their system call traces, we found that inefficient use of system calls can contribute to increased energy consumption and poor execution time.

[1]  Luca Ardito,et al.  Energy Consumption Analysis of Algorithms Implementations , 2015, 2015 ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM).

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

[3]  Mohamed Adel Serhani,et al.  Performance Evaluation of Mobile Web Services , 2011, 2011 IEEE Ninth European Conference on Web Services.

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

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

[6]  Jácome Cunha,et al.  Energy efficiency across programming languages: how do energy, time, and memory relate? , 2017, SLE.

[7]  Fernando Castor Filho,et al.  A Study on the Energy Consumption of Android App Development Approaches , 2017, 2017 IEEE/ACM 14th International Conference on Mining Software Repositories (MSR).

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

[9]  Guoqing Xu,et al.  Understanding and overcoming parallelism bottlenecks in ForkJoin applications , 2017, 2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE).

[10]  Lori L. Pollock,et al.  From benchmarks to real apps: Exploring the energy impacts of performance-directed changes , 2016, J. Syst. Softw..

[11]  Kathryn S. McKinley,et al.  The model is not enough: Understanding energy consumption in mobile devices , 2012, 2012 IEEE Hot Chips 24 Symposium (HCS).

[12]  Leo A. Meyerovich,et al.  Empirical analysis of programming language adoption , 2013, OOPSLA.

[13]  Rui Zhang,et al.  An Empirical Study of Practitioners' Perspectives on Green Software Engineering , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE).

[14]  Foutse Khomh,et al.  On the impact of sampling frequency on software energy measurements , 2015, PeerJ Prepr..

[15]  Abram Hindle,et al.  GreenMiner: a hardware based mining software repositories software energy consumption framework , 2014, MSR 2014.

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

[17]  Peter Braun,et al.  Assessment of REST and WebSocket in regards to their energy consumption for mobile applications , 2015, 2015 IEEE 8th International Conference on Intelligent Data Acquisition and Advanced Computing Systems: Technology and Applications (IDAACS).

[18]  Gustavo Pinto,et al.  Recommending energy-efficient Java collections , 2019, MSR.

[19]  Stephan Reiff-Marganiec,et al.  Performance and energy evaluation of RESTful web services in Raspberry Pi , 2014, 2014 IEEE 33rd International Performance Computing and Communications Conference (IPCCC).

[20]  Lisane B. de Brisolara,et al.  Analysis and Evaluation of the Android Best Practices Impact on the Efficiency of Mobile Applications , 2013, 2013 III Brazilian Symposium on Computing Systems Engineering.

[21]  Gustavo Pinto,et al.  A Comprehensive Study on the Energy Efficiency of Java's Thread-Safe Collections , 2016, ICSME.

[22]  Jácome Cunha,et al.  jStanley: Placing a Green Thumb on Java Collections , 2018, 2018 33rd IEEE/ACM International Conference on Automated Software Engineering (ASE).

[23]  Eleni Stroulia,et al.  GreenAdvisor: A tool for analyzing the impact of software evolution on energy consumption , 2015, 2015 IEEE International Conference on Software Maintenance and Evolution (ICSME).

[24]  Diomidis Spinellis,et al.  What are Your Programming Language's Energy-Delay Implications? , 2018, 2018 IEEE/ACM 15th International Conference on Mining Software Repositories (MSR).

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

[26]  Daniel Cordeiro,et al.  Comparing REST, SOAP, Socket and gRPC in computation offloading of mobile applications: An energy cost analysis , 2017, 2017 IEEE 9th Latin-American Conference on Communications (LATINCOM).

[27]  Gustavo Pinto,et al.  Refactoring multicore applications towards energy efficiency , 2013, SPLASH.

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

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

[30]  João Paulo Fernandes,et al.  On Haskell and energy efficiency , 2019, J. Syst. Softw..

[31]  Didier Colle,et al.  Trends in worldwide ICT electricity consumption from 2007 to 2012 , 2014, Comput. Commun..

[32]  Giuseppe Procaccianti,et al.  Empirical evaluation of two best practices for energy-efficient software development , 2016, J. Syst. Softw..