TY - GEN
T1 - Evaluation of the impact on energy consumption of lazy versus strict evaluation of Haskell data-structures
AU - Melfe, Gilberto
AU - Fonseca, Alcides
AU - Fernandes, João Paulo
N1 - Publisher Copyright:
© 2018 ACM.
PY - 2018/9/20
Y1 - 2018/9/20
N2 - environmental and economical reasons, it is necessary to optimize software programs to be more energy efficient. There has been a lazy versus strict evaluation debate in the community, with a special focus on functional programming, with regards to program speed. Until now there has not been any insight about the impact of the evaluation strategy in energy consumption. We have used micro-benchmarks on lazy and strict implementations of the Map data structure abstraction to understand how execution time and package and RAM energy consumptions are affected by using lazy or strict implementations. This study proposes recommendations for developers to use strict evaluation for most tasks as the default approach, specially when iterating over elements in Maps.
AB - environmental and economical reasons, it is necessary to optimize software programs to be more energy efficient. There has been a lazy versus strict evaluation debate in the community, with a special focus on functional programming, with regards to program speed. Until now there has not been any insight about the impact of the evaluation strategy in energy consumption. We have used micro-benchmarks on lazy and strict implementations of the Map data structure abstraction to understand how execution time and package and RAM energy consumptions are affected by using lazy or strict implementations. This study proposes recommendations for developers to use strict evaluation for most tasks as the default approach, specially when iterating over elements in Maps.
KW - Data structures
KW - Energy consumption
KW - Functional programming
KW - Haskell
UR - http://www.scopus.com/inward/record.url?scp=85063098526&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85063098526&partnerID=8YFLogxK
U2 - 10.1145/3264637.3264648
DO - 10.1145/3264637.3264648
M3 - Conference contribution
AN - SCOPUS:85063098526
T3 - ACM International Conference Proceeding Series
SP - 83
EP - 89
BT - Proceedings - 22nd Brazilian Symposium on Programming Languages, SBLP 2018
PB - Association for Computing Machinery
T2 - 22nd Brazilian Symposium on Programming Languages, SBLP 2018
Y2 - 20 September 2018 through 21 September 2018
ER -