Abstract | Over the last years, energy consumption has become
a first-class citizen in software development practice. While
energy-efficient solutions on lower-level layers of the software
stack are well-established, there is convincing evidence that even
better results can be achieved by encouraging practitioners to
participate in the process. For instance, previous work has shown
that using a newer version of a concurrent data structure can
yield a 2.19x energy savings when compared to the old associative
implementation [75]. Nonetheless, little is known about how much
software engineers are employing energy-efficient solutions in
their applications and what solutions they employ for improving
energy-efficiency. In this paper we present a qualitative study
of “energy-aware commits”. Using Github as our primary data
source, we perform a thorough analysis on an initial sample of
2,189 commits and carefully curate a set of 371 energy-aware
commits spread over 317 real-world non-trivial applications.
Our study reveals that software developers heavily rely on lowlevel
energy management approaches, such as frequency scaling
and multiple levels of idleness. Also, our findings suggest that
ill-chosen energy saving techniques can impact the correctness
of an application. Yet, we found what we call “energy-aware
interfaces”, which are means for clients (e.g., developers or endusers)
to save energy in their applications just by using a function,
abstracting away the low-level implementation details.
|