Comparing Energy Consumption of Full-Stack Web Frameworks With a Novel Test Site and an Automated Benchmark
Authors
Christensen, Albert Hald ; Hansen, Bastian Brix ; Juul-Naber, Anton
Term
4. term
Education
Publication year
2026
Submitted on
2026-06-06
Pages
51
Abstract
This thesis compares how energy-efficient different popular full-stack web frameworks are—tools that power both the front end (what you see in the browser) and the back end (the server). We extend a test program (a benchmark runner) that automatically performs the same set of user interactions in Firefox using Selenium, a browser automation tool. While these interactions run, the tool records energy use and data transfer on the client (browser) with the Gecko Profiler. On the server, energy use is gathered from Apple's Recount, the same energy accounting source used by the Gecko Profiler. Recount attributes energy to each process at every thread context switch (when the CPU switches between tasks), which reduces noise from background activity and makes comparisons more reliable. By measuring client-side energy, server-side energy, and bandwidth, the benchmark gives a broad view of each framework's resource use. We build a test website intended to represent highly visited sites and implement it in seven different framework configurations. For each implementation, six test cases exercise common tasks. Results show large differences between frameworks: on the client, energy use differs by up to 82%, and on the server by up to 2856%. This means framework choice can have a major impact on energy use. We find these differences to be statistically significant. Among the frameworks tested, Astro and Ruby on Rails use the least energy overall, while Next.js uses the most.
Dette speciale sammenligner, hvor energieffektive forskellige populære full-stack web-frameworks er – værktøjer, der driver både frontenden (det, man ser i browseren) og backenden (serveren). Vi udvider et testprogram (en benchmark-runner), som automatisk udfører de samme forudbestemte brugerhandlinger i Firefox ved hjælp af Selenium, et værktøj til at styre browseren automatisk. Samtidig registrerer værktøjet energiforbrug og datatrafik på klientsiden (browseren) med Gecko Profiler. På serversiden hentes energiforbruget fra Apples Recount, den samme energikilde som Gecko Profiler benytter. Recount fordeler energi på hvert program ved hvert skift mellem tråde (når CPU'en skifter mellem opgaver), hvilket dæmper støj fra system- og baggrundsprocesser og gør sammenligninger mere pålidelige. Ved at måle både klientsidens energi, serversidens energi og båndbredde giver benchmarken et bredt billede af hvert frameworks ressourceforbrug. Vi bygger en testhjemmeside, der skal repræsentere meget besøgte websites, og implementerer den i syv forskellige framework-konfigurationer. For hver implementering udføres seks test cases, der udfordrer rammerne i almindelige opgaver. Resultaterne viser store forskelle: på klientsiden varierer energiforbruget med op til 82 %, og på serversiden med op til 2856 %. Det betyder, at valget af framework kan have stor betydning for energiforbrug. Forskellene er statistisk signifikante. Blandt de testede frameworks klarer Astro og Ruby on Rails sig bedst, mens Next.js klarer sig dårligst.
[This apstract has been rewritten with the help of AI based on the project's original abstract]
Keywords
