Small Changes, Big Impacts: Leveraging Diversity to Improve Energy Efficiency
This paper addresses the problem of improving software energy efficiency for developers, offering an incremental approach by utilizing existing diverse software components.
This paper proposes that developers can improve software energy efficiency by leveraging software diversity. The core idea is to alternate between readily available, diversely-designed third-party software components during development.
In the last few years, a growing body of research has proposed methods, techniques, and tools to support developers in the construction of software that consumes less energy. These solutions leverage diverse approaches such as version history mining, analytical models, identifying energy-efficient color schemes, and optimizing the packaging of HTTP requests. In this chapter, we present a complementary approach. We advocate that developers should leverage software diversity to make software systems more energy-efficient. Our main insight is that non-specialists can build software that consumes less energy by alternating at development time between readily available, diversely-designed pieces of software implemented by third-parties. These pieces of software can vary in nature, granularity, and quality attributes. Examples include data structures and constructs for thread management and synchronization.