What are your Programming Language’s Energy-Delay Implications?

Conference Paper (2018)
Author(s)

Stefanos Georgiou (Athens University of Economics and Business)

M. Kechagia (TU Delft - Software Engineering)

Panos Louridas (Athens University of Economics and Business)

Diomidis Spinellis (Athens University of Economics and Business)

Research Group
Software Engineering
Copyright
© 2018 Stefanos Georgiou, M. Kechagia, Panos Louridas, D. Spinellis
DOI related publication
https://doi.org/10.1145/3196398.3196414
More Info
expand_more
Publication Year
2018
Language
English
Copyright
© 2018 Stefanos Georgiou, M. Kechagia, Panos Louridas, D. Spinellis
Research Group
Software Engineering
Bibliographical Note
Accepted author manuscript@en
Pages (from-to)
303-313
ISBN (print)
978-1-4503-5716-6
Reuse Rights

Other than for strictly personal use, it is not permitted to download, forward or distribute the text or part of it, without the consent of the author(s) and/or copyright holder(s), unless the work is under an open content license such as Creative Commons.

Abstract

Motivation: Even though many studies examine the energy efficiency of hardware and embedded systems, those that investigate the energy consumption of software applications are still limited, and mostly focused on mobile applications. As modern applications become even more complex and heterogeneous a need arises for methods that can accurately assess their energy consumption.

Goal: Measure the energy consumption and run-time performance of commonly used programming tasks implemented in different programming languages and executed on a variety of platforms to help developers to choose appropriate implementation platforms.

Method: Obtain measurements to calculate the Energy Delay Product, a weighted function that takes into account a task’s energy consumption and run-time performance. We perform our tests by calculating the Energy Delay Product of 25 programming tasks, found in the Rosetta Code Repository, which are implemented in 14 programming languages and run on three different computer platforms, a server, a laptop, and an embedded system.

Results: Compiled programming languages are outperforming the interpreted ones for most, but not for all tasks. C, C#, and JavaScript are on average the best performing compiled, semi-compiled, and interpreted programming languages for the Energy Delay Product, and Rust appears to be well-placed for i/o-intensive operations, such as file handling. We also find that a good behaviour, energywise, can be the result of clever optimizations and design choices in seemingly unexpected programming languages.

Files

GKLS18.pdf
(pdf | 0.82 Mb)
License info not available