Contains the Dockerfiles that I used to evaluate how HotSpot VM performs compared to OpenJ9 VM.
Every Dockerfile in this repository runs the well-known application Spring-PetClinic on top of a different Java Virtual Machine (JVM), to allow us to assess the performance of each JVM.
To run with Java 8 - HotSpot:
docker run --name java8-hotspot --rm -it -p 8081:8080 ikolaxis/evaluate-java-virtual-machines:java8-hotspot
To run with Java 8 - OpenJ9:
docker run --name java8-openj9 --rm -it -p 8082:8080 ikolaxis/evaluate-java-virtual-machines:java8-openj9
To run with Java 11 - HotSpot:
docker run --name java11-hotspot --rm -it -p 8083:8080 ikolaxis/evaluate-java-virtual-machines:java11-hotspot
To run with the minimum required Java 11 - HotSpot, which was assembled using jlink:
docker run --name java11-hotspot-jlinked --rm -it -p 8084:8080 ikolaxis/evaluate-java-virtual-machines:java11-hotspot-jlinked
To run with Java 11 - OpenJ9:
docker run --name java11-openj9 --rm -it -p 8085:8080 ikolaxis/evaluate-java-virtual-machines:java11-openj9
To run with the minimum required Java 11 - OpenJ9, which was assembled using jlink:
docker run --name java11-openj9-jlinked --rm -it -p 8086:8080 ikolaxis/evaluate-java-virtual-machines:java11-openj9-jlinked
For this experiment, we assume that the shared classes will be cached under directory /tmp. To run with Java 11 - OpenJ9 - Class Data Sharing:
docker run --rm -it -p 8087:8080 -v /tmp:/app/shareclasses ikolaxis/evaluate-java-virtual-machines:java11-openj9-shareclasses
To notice a reduction in memory footprint and startup time, you will need to run more than one instances of the same application, each one running on a different port.