An energy-oriented look into memoizability, using static analysis

Studenteropgave: Speciale (inkl. HD afgangsprojekt)

  • Theodor Constantin
4. semester, Datalogi (it), Kandidat (Kandidatuddannelse)
Energy awareness has become a hot topic in software development and computer science in recent years, due to realizations concerning the amount of energy consumed through ICT processes worldwide. Practitioner-oriented research reveals that a recurring problem in adopting energy-saving mentalities and techniques for developers is the lack of supporting tools in this area. In this thesis, we go over the development of `grint`, a *green linter* for JavaScript programs. `grint` is designed to detect functional purity in JavaScript functions, that can be optimized via memoization, in order to improve the energy consumption of the application. I test the efficacy of `grint` and memoization, as an energy optimization technique, on two open-source projects by running original and refactored versions, as part of an experimental suite, and comparing their energy consumption. I use Intel's RAPL to perform energy measurements. Measurements show that the memoized versions of the applications had consistently worse energy consumption rates than the original. This suggests that function memoizability is a more complex aspect of JavaScript functions, that is only conditioned by purity and not fully represented by it.
Udgivelsesdato14 jun. 2021
Antal sider56
ID: 414700107