You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Edward M. Kagan f5d28ba2c4 Final decision on JAX-RS kernel reached 4 years ago
csv-merger Second round of tests passed 4 years ago
modules Switched to jersey 2.3.5 due to jakarta being shit 4 years ago
reports Final decision on JAX-RS kernel reached 4 years ago
scripts Final decision on JAX-RS kernel reached 4 years ago
.gitignore Jar collection scripts, wrk wrapper and lua for json format 4 years ago
pom.xml post-morten for round I 4 years ago
readme.md Final decision on JAX-RS kernel reached 4 years ago
workspace.code-workspace Jooby test pack added 4 years ago

readme.md

JAX-RS compliant kernels test

Round I

Run tests with 100 connections. These modules performed as shit:

  • jersey-jdk-http
  • jersey-simple-http
  • resteasy-jdk-http

rawnetty is not that representative afterall - no need to loose time. openjdk-11 with alpine kernel failed to start test (not sure 'bout it).

Round II

bad throughput

  • jersey-jetty

bad mean and diviations is too high

  • cxf-jetty
  • cxf-undertow

diviation is too high

  • jooby-jetty
  • resteasy-netty

bad mean response time

  • jersey-netty

bad compatibility (too many backfire incudents)

  • quarkus-resteasy-jackson

bad mean response time and problems with compatibility

  • jersey-grizzly2

Round III

survivor jdks:

  • eclipse-temurin:17-alpine
  • amazoncorretto:11-alpine
  • amazoncorretto:17-alpine

survivor modules:

  • jooby-undertow
  • resteasy-vertx

Best performance:

  • resteasy-vertx + amazoncorretto:11-alpine
  • jooby-undertow + eclipse-temurin:17-alpine

Best stability:

  • resteasy-vertx + amazoncorretto:17-alpine
  • jooby-undertow + eclipse-temurin:17-alpine

Round IV (finals)

Overall best JAX-RS kernel to utilize: resteasy with vert.x backend Alternative kernel to look at if main failes: jooby with undertow backend

Best JDK for performance and stability: amazoncorretto:11-alpine Best JDK for stability: amazoncorretto:17-alpine Alternative in case of amazon collapse: eclipse-temurin:17-alpine

Conclusion

Start new kernel based around JAX-RS methodologym, use Vert.X eco-system where possible. End-to-end test for jooby-undertow & resteasy-vertx with websockets and PostgreSQL needed. Also ORM layer need more tests.

Build time (for reference only)

Kernel time
quarkus-resteasy-jackson 1.463 s
quarkus-resteasy-jsonb 0.943 s
jersey-grizzly2 1.029 s
jersey-jdk-http 0.350 s
jersey-simple-http 0.370 s
jersey-jetty 0.465 s
jersey-netty 0.596 s
jersey-netty 0.596 s
jersey-netty 0.596 s
jersey-netty 0.596 s
rawnetty 0.659 s
jooby-netty 0.497 s
jooby-jetty 0.360 s
jooby-undertow 0.410 s
resteasy-jdk-http 0.319 s
resteasy-netty 0.603 s
resteasy-reactor-netty 0.813 s
resteasy-vertx 0.648 s
resteasy-undertow 0.568 s
cxf-jetty 0.572 s
cxf-netty 0.618 s
cxf-undertow 0.691 s