Nowadays, we are more and more witnessing the fact that software influences energy consumption: for example, when we struggle to shut down applications on our smartphone to save that extra battery we need to reach the end of the day (and sometimes producing the opposite effect); or when we play that amazing brand new 3D game on our laptop for maybe an hour, before we get that “low battery” pop-up that normally shows up only after several hours of office work (ironic, indeed).
However, although as users we might be aware of the energy efficiency of software applications, what we don’t know is how much we can do as programmers, designers and developers. Is it worth it to invest time and effort to produce more energy-efficient code?
Well, according to the preliminary results we achieved in the EFRO MRA Cluster Green Software project, it definitely is. Our research group conducted an experiment to assess the impact of “best practices” for energy-efficient software programming. We investigated the use of two different practices:
- Use efficient queries: optimize the queries issued to databases by removing unnecessary instructions (e.g. order-by)
- Put application to sleep: use sleep() instructions when the application is idle to avoid busy waiting
We implemented those practices in two well-known open source software applications and we used the equipment in the SEFLab of the Hogeschool van Amsterdam (HvA) to carry out the experiment. In the pictures below you can find the results:
As you can see, the numbers are quite significant, especially if you put them on the correct scale: everyday, millions of web servers are executed and database queries are issued worldwide. Even a small energy optimization can thus bring great benefits in terms of energy reduction (and costs) and CO2 emissions abatement. Software energy efficiency matters!
We will publish more information and details on our study as the research goes on. Stay in tune!