Can Java cold start?

A Spring Boot based HTTP service

In this installment of the series we are using examples created using Spring Boot to cold start the HTTP server.

If you want to run the experiment yourself you can download the example.tar.gz file.

Example Process start Process ready Process total
Example 6 - Spring Boot using Tomcat 919 ms 149 ms 1068 ms
Example 7 - Spring Boot using Jetty 955 ms 163 ms 1118 ms
Example 8 - Spring Boot using Undertow 969 ms 254 ms 1223 ms
Example 9 - Spring Boot using Reactive Netty 868 ms 252 ms 1120 ms
Example 10 - Spring Boot using Tomcat (Docker) 2,707 ms 211 ms 2,918 ms
Example 11 - Spring Boot using Jetty (Docker) 2,823 ms 247 ms 3,070 ms
Example 12 - Spring Boot using Undertow (Docker) 2,751 ms 400 ms 3,151 ms
Example 13 - Spring Boot using Reactive Netty (Docker) 2,627 ms 455 ms 3,082 ms

These numbers were collected on a Mac Mini M1 with 16GB using Java 17

Legend

If you have any comments, suggestions or concerns, please start a discussion on GitHub.

Posted October 19th, 2021

Up