Skip to content

nicdesousa/framework-comparison-2021

 
 

Repository files navigation

2021: Micronaut 2.4.2 vs Quarkus 1.13.0.Final vs Spring Boot 2.4.3 on JDK 11

This repo provides a modified version of the original 2020: Performance comparison between Micronaut 2.0 M2 vs Quarkus 1.3.1 vs Spring Boot 2.3 M2 on JDK 14.

Changes

  • Uses JDK11 instead of JDK14
  • Minimal/no logging for all frameworks
  • Micronaut:
    • Updated to v2.4.2
    • Included a Rest-Assured test
  • Quarkus:
    • Updated to v1.13.0.Final
    • Configuration set to use port 8080
  • Spring Boot:
    • Updated to v2.4.3
    • Configuration set to use port 8080

Framework benchmarks

  • JUnit happy-path timed request
  • NodeJS happy-path timed request
  • cURL happy+invalid path timed requests
  • AutoCannon happy+invalid path requests/sec with server JVM metrics
  • Deprecated: ApacheBench happy+invalid path requests/sec with server JVM metrics

Running the benchmarks

Build and run all benchmarks

The all-in-one script to build and run all benchmarks:

./buildAndRunAllTests.sh

Alternatively:

  1. Build the projects and install dependencies:
./build.sh
  1. Run all benchmarks:
./runAllTests.sh

Junit benchmarks

./runJunitTests.sh

NodeJS benchmarks

./runNodeTests.sh

cURL benchmarks

./runCurlTests.sh

AutoCannon benchmarks

./runAutoCannonTests.sh

ApacheBench benchmarks (deprecated)

./runABTests.sh

Sample results

./buildAndRunAllTests.sh

Languages

  • HTML 53.2%
  • Shell 27.0%
  • Java 17.2%
  • JavaScript 2.2%
  • Dockerfile 0.4%