Popis: |
Background. Environmental sustainability and reducing energy consumption are important and relevant topics today. Energy consumption by data centres is constantly increasing. One factor that could be affecting this is what web frameworks are being used. Objectives. We wanted to investigate whether there is a difference in energy consumption depending on the selected web framework for an API web server. An improvement should not come with overhanging negative side effects. Therefore, energy usage was to be contrasted with response time. In addition, we wanted to see how the choice of response format affects these metrics. In the case of finding any considerable impact on energy usage, without compromising the response time, the goal was to communicate this in order to increase the awareness among software developers. Methods. A literature review was done in order to gather existing information on how to conduct an experiment measuring software energy consumption. We evaluated available tools for measuring consumed application energy. An experiment then compared four popular web frameworks in regard to both energy usage, and response time. Django, Express, Laravel, and Spring Boot were selected for the experiment. Metrics measured were energy usage and response time. The experiment was executed with three different amounts of concurrent requests vusers = {10, 100, 250}. Results. The literature study resulted in a selection of software tools for measuring software energy consumption to choose from. The tool perf was chosen for the experiment. In the experiment, the response format was shown to affect the response time, but not the energy consumption. Increasing the amount of concurrent users made for larger differences between frameworks, both regarding energy usage and response time. Express and Spring Boot show the best performance in both regards for all amounts of concurrent requests. Conclusions. Express and Spring Boot are the clear winners out of the four compared frameworks. Both in terms of energy usage and response time, they had the best results. Django is not a web framework to recommend if response time is of importance. |