Energy efficiency across programming languages: how do energy, time, and memory relate?
Citation: Rui Pereira, Marco Couto, Francisco Ribeiro, Rui Rua, Jácome Cunha, João Paulo Fernandes, Joãa Saraiva (2017) Energy efficiency across programming languages: how do energy, time, and memory relate?.
Internet Archive Scholar (search for fulltext): Energy efficiency across programming languages: how do energy, time, and memory relate?
Wikidata (metadata): Q62592605
Download: http://greenlab.di.uminho.pt/wp-content/uploads/2017/10/sleFinal.pdf
Tagged:
Summary
Using languages in the Computer Language Benchmarks Game (CLBG), authors test four research questions.
RQ1: Can we compare the energy efficiency of software languages?
Authors claim yes, because they were able to use the CLBG and tools for measuring energy efficiency with little overhead.
RQ2: Is the faster language always the most energy efficient?
Energy (J) = Power (W) x Time(s)
Although the 5 fastest languages (C, Rust, C++, Ada, Java) also use the least energy, other languages time and energy rankings are highly variable, so the faster language is not always the most energy efficient.
RQ3: How does memory usage relate to energy consumption?
Authors expected possibility of little correlation but were surprised to find almost none, particularly for peak memory usage.
RQ4:Can we automatically decide what is the best programming language considering energy, time, and memory usage?
Languages are placed in Pareto optimal sets for the objectives of:
- Time and Memory
- Energy and Time
- Energy and Memory
- Energy and Time and Memory
If only execution time and energy consumption are of concern, it is almost always possible to decide which language is "best". If memory is also a concern, the developer has to decide which characteristic is most important.
Theoretical and Practical Relevance
Author site https://sites.google.com/view/energy-efficiency-languages
Discussion at https://news.ycombinator.com/item?id=19519164