AAU Student Projects - visit Aalborg University's student projects portal
A master thesis from Aalborg University

Improving C# Programs for Energy Efficiency: Helping Developers write Energy Efficient Code

Author(s)

Term

4. term

Education

Publication year

2022

Submitted on

2022-06-08

Pages

157 pages

Abstract

This project builds upon our research into the energy consumption of language constructs in C# to create a linter called Energy Analyzer. First, we create microbenchmarks, we use the results from these microbenchmarks and the microbenchmarks from our previous research, and apply them to larger benchmarks to see if the results can be generalized into larger programs. We use the results from the larger benchmarks to create Energy Analyzer, which is a NuGet package that aims to help developers write more energy efficient C# code. Energy Analyzer consists of two parts, a suggestion part, which finds C# constructs with energy efficient alternatives and gives the suggestion to change the construct to the energy efficient alternative. The second part is the code fix part, which, if chosen by the developer, automatically changes the construct to a more energy efficient one. We evaluate Energy Analyzer in both performance and usability, where we find 15,05% energy consumption can be saved in one benchmark, while no significant difference can be found in another benchmark, while the usability was satisfying for the tested developers.

This project builds upon our research into the energy consumption of language constructs in C# to create a linter called Energy Analyzer. First, we create microbenchmarks, we use the results from these microbenchmarks and the microbenchmarks from our previous research, and apply them to larger benchmarks to see if the results can be generalized into larger programs. We use the results from the larger benchmarks to create Energy Analyzer, which is a NuGet package that aims to help developers write more energy efficient C# code. Energy Analyzer consists of two parts, a suggestion part, which finds C# constructs with energy efficient alternatives and gives the suggestion to change the construct to the energy efficient alternative. The second part is the code fix part, which, if chosen by the developer, automatically changes the construct to a more energy efficient one. We evaluate Energy Analyzer in both performance and usability, where we find 15,05% energy consumption can be saved in one benchmark, while no significant difference can be found in another benchmark, while the usability was satisfying for the tested developers.

Keywords

Documents


Colophon: This page is part of the AAU Student Projects portal, which is run by Aalborg University. Here, you can find and download publicly available bachelor's theses and master's projects from across the university dating from 2008 onwards. Student projects from before 2008 are available in printed form at Aalborg University Library.

If you have any questions about AAU Student Projects or the research registration, dissemination and analysis at Aalborg University, please feel free to contact the VBN team. You can also find more information in the AAU Student Projects FAQs.