Improving C# Programs for Energy Efficiency: Helping Developers write Energy Efficient Code
Authors
Rasmussen, Lasse Stig Emil ; Lindof, Milton Kristian ; Christensen, Søren Bech
Term
4. term
Education
Publication year
2022
Pages
157
Abstract
This project turns our earlier measurements of how different C# language constructs affect energy use into a practical tool called Energy Analyzer. We first built small, focused tests (microbenchmarks) and combined their results with those from our previous research. We then examined whether the findings hold in larger, more realistic programs. Based on this, we created Energy Analyzer as a NuGet package that helps developers write more energy-efficient C# code. It is a linter, a tool that scans code to flag constructs with more efficient alternatives; it can also apply an optional code fix to make the change automatically. We evaluated Energy Analyzer for performance and usability. In one benchmark it reduced energy consumption by 15.05%; in another, the difference was not significant. Developers who tested the tool found it usable.
Dette projekt omsætter vores tidligere målinger af, hvordan forskellige C#-sprogkonstruktioner påvirker energiforbruget, til et praktisk værktøj kaldet Energy Analyzer. Først byggede vi små, målrettede tests (mikrobenchmarks) og kombinerede resultaterne med vores tidligere forskning. Derefter undersøgte vi, om resultaterne også holder i større og mere realistiske programmer. På den baggrund udviklede vi Energy Analyzer som en NuGet-pakke, der hjælper udviklere med at skrive mere energieffektiv C#-kode. Værktøjet er en linter, et værktøj der gennemgår kode for at finde konstruktioner med mere energieffektive alternativer; det kan også automatisk gennemføre ændringen med en valgfri kodefix. Vi evaluerede Energy Analyzer for ydelse og brugbarhed. I én benchmark blev energiforbruget reduceret med 15,05 %, mens der i en anden ikke var en signifikant forskel. De udviklere, der testede værktøjet, fandt det brugbart.
[This apstract has been rewritten with the help of AI based on the project's original abstract]
Keywords
