Skip to content

CollaborationInEncapsulation/blocking-vs-nonblocking-benchmark

Repository files navigation

Reactive vs NonReactive

This code is a part of presentataion Refactor to Reactive With Spring 5 and Project Reactor.

Project

Tool-sets

  • Spring Framework 5
  • Spring WebMVC for blocking
  • Spring WebFlux for non-blocking
  • Tomcat Server for blocking and non-blocking
  • Netty Server for nonblocing

Hardware

Amazon EC2 t2.medium

Throughtput-sets

Blocking Tomcat

Execution Options

java -Xmx2g 
     -Xms1g
     -Dserver.tomcat.accept-count=20000 
     -jar blocking-demo-0.0.1-SNAPSHOT.jar

Results

Throughput Average Latency (milliseconds)
100 1200
1000 4600
10000 44565

Blocking Tomcat

Execution Options

java -Xmx2g 
     -Xms1g
     -Dserver.tomcat.max-threads=10000 
     -Dserver.tomcat.max-connections=10000 
     -Dserver.tomcat.accept-count=20000 
     -jar blocking-demo-0.0.1-SNAPSHOT.jar

Results

Throughput Average Latency (milliseconds)
100 1271
1000 1429
10000 OutOfMemoryError / Killed

NonBlocking Tomcat (based on Servlet API 3.1)

Execution Options

java -Xmx2g 
     -Xms1g
     -Dserver.tomcat.accept-count=20000 
     -jar non-blocking-demo-tomcat-0.0.1-SNAPSHOT.jar

Results

Throughput Average Latency (milliseconds)
100 1203
1000 1407
10000 9661

NonBlocking Netty

Execution Options

java -Xmx2g 
     -Xms1g
     -jar non-blocking-demo-netty-0.0.1-SNAPSHOT.jar

Results

Throughput Average Latency (milliseconds)
1000 1370
10000 2699
20000 6310

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published