Energy Consumption of Functional Programs in the Context of Lazy Evaluation - Melfe, Gilberto Amaral Cordeiro (2016)
We have limited natural resources available to support our daily living, be they raw materials for manufacturing or energy to generate work. The pace at which we consume those resources is approaching the limits at which nature can replenish them, and at which we can extract them. It is with those resources that we develop the most varied technology, on which our modern way of life is increasingly more dependent, to provide every kind of service conceivable. In particular, the Information and Communication Technologies are an essential part of today’s living. With ever more devices, supporting different services, in utilization, their energy demand grows daily. Aware of this facts, hardware/software developers seek ways to optimize the energy consumption by the computing hardware/software artifacts. Our work, focused on software, was driven by the need to know if, and to what extent, can we save energy by refactoring existing programs. To that extent, we implemented a benchmark that was used to analyze the energy consumption of various implementations of common data structure abstractions, implemented in the Edison library, for the Haskell programming language. Our findings lead us to conclude that, we can save energy, to a great extent, depending on the usage pattern, by software programs, of the native operations available in Edison.