I. Introduction
The proliferation of global computing devices has pushed IT energy consumption higher and higher, raising concerns among many environmentalists. As reported in [1], information and communication technology ecosystems have approached 10% of the world's electricity generation. The need for reducing IT energy consumption and research efforts in every sector is now necessary, not just for energy saving and extending battery life, but also for the environment. There are many areas in the layers of computer systems that can be optimized for energy efficiency, from hardware [3], [4], operating system [5] to application layers [12], [13]. By making “unpolluted design” of computer systems [2], hardware engineers and software developers can also play a significant part in the fight against climate change. In this study, we focus on the application layer, primarily object-oriented software with “interface-based” implementation [6], where there are multiple choices of classes that implement the same interface. Our goal is to explore how the choice of these classes impacts the energy consumption of software applications and to find ways to intelligently switch between implementations for energy efficiency.