Compile outputs fun

Performance of different web application framework

Published 2 years ago.NET Core, Java, Kotlin, Spring Boot

Background

Just to find out what's the performance of each web application framework

What to do?

  1. A test application will bombard the web application with 100 requests at the same time.
  2. Token-server is written in various framework.
  3. Token-server will perform a HTTP call to another backend server.
  4. Identity-server will perform a fake sleep for 5 secs.

What are the framework used?

  1. Web app will use
    1. Java 11 + Spring Boot WebMVC 2.3.4
    2. Java 11 + Micronaut 1.0.3
    3. Kotlin + Spring Boot Webflux 2.3.4
    4. NodeJS 12.16.1 + Express 4.17.1
    5. NodeJS 12.16.1 + Restify 8.5.1
    6. .NET Core 3.1.300 + ASP .NET Core 3.1.2
  2. Test app will use Java 11 console application
  3. Another server will use Jave 11 Spring Boot WebMVC 2.3.4

Result

  1. Spring Boot WebMVC is the slowest. Not surprise here because it's the only framework that use thread per request model here. It won't work well in the above scenario.
  2. Spring Boot Webflux and Micronaut works better than NodeJS. That's a surprise.
  3. .NET Core is the fastest. This test is done on a Windows machine. Not sure if the it will be the same on Linux machine.

Notes

The test might be different on your machine. The full source code is here: https://github.com/chimin/webapp-perf