Workload-Sensitive Energy Benchmarking of .NET JSON Libraries
Authors
Voda, Georgian ; Vanders, Toms
Term
4. term
Education
Publication year
2026
Submitted on
2026-06-08
Pages
89
Abstract
Measuring how much energy software uses during everyday development is difficult, and runtime is not always a reliable proxy for energy use. This thesis examines energy consumption at the library level in .NET, using JSON serialization (turning objects into JSON) and deserialization (parsing JSON into objects) as a case study. It extends earlier work by (i) systematically varying the JSON workload, (ii) using a more controlled RAPL-based energy measurement setup, and (iii) adding an exploratory Metrion-based comparison under noisy conditions. Five library configurations are evaluated: STJRefGen, STJSrcGen, Newtonsoft.Json, SpanJson, and Utf8Json. The results show that energy rankings depend on the workload. In general, SpanJson uses the least energy for deserialization, STJSrcGen uses the least for serialization, and Newtonsoft.Json usually uses the most. However, rankings change across workload dimensions such as Width, String Length, Numeric Length, and String Composition. Runtime evidence indicates that System.Text.Json source generation mainly benefits serialization, where generated write handlers are available. The Metrion results mostly preserve the rankings under the tested noisy conditions, but remain exploratory. Overall, the thesis shows that energy benchmarking of JSON libraries should be workload-sensitive.
Det er svært at observere, hvor meget energi software bruger i daglig udvikling, og køretid er ikke altid en pålidelig indikator for energiforbrug. Denne afhandling undersøger energiforbrug på biblioteksniveau i .NET med JSON-serialisering (at omsætte objekter til JSON) og deserialisering (at læse JSON til objekter) som case. Arbejdet udvider tidligere studier ved (i) at variere JSON-arbejdsbelastningen kontrolleret, (ii) at bruge et mere kontrolleret RAPL-baseret målemiljø for energi, og (iii) at tilføje en eksplorativ Metrion-baseret sammenligning under støjende forhold. Fem bibliotekskonfigurationer evalueres: STJRefGen, STJSrcGen, Newtonsoft.Json, SpanJson og Utf8Json. Resultaterne viser, at energirangeringer afhænger af arbejdsbelastningen. Generelt bruger SpanJson mindst energi ved deserialisering, STJSrcGen mindst ved serialisering, og Newtonsoft.Json bruger ofte mest. Rangeringerne ændrer sig dog på tværs af arbejdsbelastningsdimensioner som Width, String Length, Numeric Length og String Composition. Kørselsdata viser, at System.Text.Json kildegenerering primært gavner serialisering, hvor genererede write‑handlere er tilgængelige. Metrion-resultaterne bevarer for det meste rangeringerne under de testede støjende forhold, men forbliver eksplorative. Samlet set viser afhandlingen, at energibenchmarking af JSON-biblioteker bør være følsom over for arbejdsbelastningen.
[This apstract has been rewritten with the help of AI based on the project's original abstract]
