Can Java cold-start?

To answer this question we really need to define what is meant with cold-start. In this blog series we will explore several ways to look at this problem as illustrated by the list below.

  1. Time it takes for the Java process to be up and running
  2. Time it takes for your Java container to be up and running
  3. Time it takes for your server-less Java process to be up and running

We now have several ways of looking at what cold-start is? But what about a Java process? Can we also look at that in different ways? Absolutely, for many organization when they talk about a Java process they would mean a Spring Boot application. So which frameworks, libraries, servers and tools are we going to have a look at? See below for the list we will explore.

Numbers for Java (randomly ordered)
  1. JavaSE
  2. Spring Boot
  3. WildFly
  4. Quarkus
  5. Tomcat
  6. Piranha
  7. Micronaut
  8. Helidon
  9. Glassfish
  11. Payara (version 5.2021.8 does not work with Java 17)
  12. Vert.X
  13. OpenLiberty
  14. GraalVM
  15. Spring Native (version 0.10.5 does not work with Java 17)
Numbers for other languages (randomly ordered)
  1. Ruby
  2. NodeJS
  3. Python
  4. Go

So how are we going to determine our numbers? For each entry in the list above we will write a HTTP endpoint that will return 'Hello World' when invoked. And measure how long it takes for the process to be up and running.

Posted September 22nd, 2021