The comparative analysis of Java frameworks: Spring Boot, Micronaut and Quarkus
Maciej Jeleń
maciej.jelen@pollub.edu.pl(Poland)
Mariusz Dzieńkowski
Lublin University of Technology
Abstract
The aim of the work is a comparative analysis of three frameworks designed for building web applications for the Java programming language: Spring Boot 2.4.4, Micronaut 2.5.4 and Quarkus 1.13.4.Final. Test applications were prepared, equipped with the same functionality as used in the experiment consisting in measuring the server response times to a POST request – performing the data entry into the database. For each test application, the scenario aimed at measuring the time of handling requests under various load conditions was repeated five times. During each repetition of the scenario, the load which was the average number of requests sent per second by virtual users was increased. In parallel with performance tests, the reliability of the test applications was measured. Reliability was defined as the percentage of requests sent to the server that ended in a failure. The comparative analysis also took into consideration the volume of the code of the test applications based on the selected frameworks. The performed analyses showed that in terms of all the criteria considered in this work Micronaut proved to be the best framework.
Keywords:
web application, frameworks of the Java programming language, performance analysis, Spring Boot, Micronaut, QuarkusReferences
E. K. Smyk, Overview of technologies and methods designed to build Java Enterprise web applications. Comparison of Spring and Play Frameworks based on proprietary application (praca magisterska), Politechnika Warszawska, 2014.
Google Scholar
P. Dutta, V. Gupta, S. Rana, Performance Comparison on Java Technologies – A Practical Approach, Centre for development of Advanced Computing, Third International Conference on Computer Science, Engineering & Applications (2013) 349-357, https://doi.org/10.5121/CSIT.2013.3536.
DOI: https://doi.org/10.5121/csit.2013.3536
Google Scholar
M. Šipek, D. Muharemagić, B. Mihaljević, A. Radovan, Enhancing Performance of Cloud-based Software Applications with GraalVM and Quarkus, 43rd International Convention on Information, Communication and Electronic Technology (MIPRO) (2020) 1746-1751, DOI: 10.23919/MIPRO48935.2020.9245290.
DOI: https://doi.org/10.23919/MIPRO48935.2020.9245290
Google Scholar
H. K. Dhalla, Performance Comparison of RESTful Applications Implemented in Spring Boot Java and MS.NET Core, Journal of Physis: Conference Series 1933 (2021), https://doi.org/10.1088/1742-6596/1933/1/012041.
DOI: https://doi.org/10.1088/1742-6596/1933/1/012041
Google Scholar
M. Pucek, M. Błaszczyk, P. Kopniak, Porównanie lekkich szkieletów dla języka Java poprzez analizę autorskich aplikacji internetowych, Journal of Computer Sciences Institute 19 (2021) 159-164.
DOI: https://doi.org/10.35784/jcsi.2645
Google Scholar
TIOBE Index, https://www.tiobe.com/tiobe-index/, [02.07.2021].
Google Scholar
Oracle Java SE Support Roadmap, https://www.oracle.com/java/technologies/java-se-support-roadmap.html, [06.07.2021].
Google Scholar
M. Masse, REST API Design Rulebook, O’Reilly Media, 2012.
Google Scholar
B. Miłosierny, M. Dzieńkowski, Analiza porównawcza szkieletów do budowy aplikacji internetowych w ekosystemie Node.js, Journal of Computer Sciences Institute 18 (2021) 42-48.
DOI: https://doi.org/10.35784/jcsi.2423
Google Scholar
M. Herber, Gatling. Testy wydajnościowe w innej formie, https://testerzy.pl/baza-wiedzy/gatling-testy-wydajnosci-w-innej-formie-czesc-1, [02.07.2021].
Google Scholar
Xie A., Performance Testing Tutorial: Automation, Gatling, and Jenkins, https://www.educative.io/blog/performance-testing-tutorial-gatling-jenkins, [21.07.2021].
Google Scholar
Lee G., Gatling Load Testing: How-To, Distributed Tests & Examples, https://www.loadview-testing.com/blog/gatling-load-testing-how-to-distributed-tests-examples/, [21.07.2021].
Google Scholar
A. Ludwikowski, Gatling vs JMeter – czego użyć do testowania wydajności, https://softwaremill.com/gatling-vs-jmeter-testy-wydajnosci/, [02.07.2021].
Google Scholar
Gatling, https://gatling.io/docs/gatling/reference/current/general/concepts/, [21.07.2021].
Google Scholar
B. Nius, Jak Spring Boot ułatwia tworzenie aplikacji w Javie? https://global4net.com/ecommerce/jak-spring-boot-ulatwia-tworzenie-aplikacji-w-javie/, [05.12.2019].
Google Scholar
Spring Initializr, https://start.spring.io/, [02.07.2021].
Google Scholar
P. Bykowski, Micronaut – framework dedykowany dla mikroserwisów, https://bykowski.pl/micronaut-framework-dedykowany-dla-mikroserwisow/, [17.10.2019].
Google Scholar
Micronaut, https://micronaut.io/, [03.07.2021].
Google Scholar
Quarkus – Supersonic Subatomic Java, https://quarkus.io/, [05.07.2021].
Google Scholar
Quarkus – start coding with code.quarkus.io, https://code.quarkus.io/, [06.07.2021].
Google Scholar
Oficjalna dokumentacja szkieletu Quarkus, https://quarkus.io/, [28.02.2021].
Google Scholar
Authors
Mariusz DzieńkowskiLublin University of Technology
Statistics
Abstract views: 2332PDF downloads: 1741
License
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.