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, Quarkus

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

Download


Published
2021-12-30

Cited by

Jeleń, M., & Dzieńkowski, M. (2021). The comparative analysis of Java frameworks: Spring Boot, Micronaut and Quarkus. Journal of Computer Sciences Institute, 21, 287–294. https://doi.org/10.35784/jcsi.2724

Authors

Maciej Jeleń 
maciej.jelen@pollub.edu.pl
Poland

Authors

Mariusz Dzieńkowski 

Lublin University of Technology

Statistics

Abstract views: 2332
PDF downloads: 1741