En prestandajämförelse mellan GraalVM och JVM
2025 (Swedish)Independent thesis Basic level (degree of Bachelor), 10 credits / 15 HE credits
Student thesis
Abstract [en]
Java is one of the most widely used programming languages in the world and has remained popular since the 1990s. However, its traditional runtime environment, theJava Virtual Machine (JVM) has long struggled with limitations such as slow startuptime and high resource consumption. These are issues that pose challenges in modern environments where efficiency is crucial. An alternative that has gained attention is GraalVM, which offers Ahead-of-Time (AoT) compilation and the ability togenerate optimized binary files with lower resource usage.
To compare the two technologies, a Java application built with Spring Boot was executed both as a JVM application and as an AoT-compiled Native Image using GraalVM. Load tests simulating 100 to 1,000 concurrent users were performed,measuring CPU usage, memory consumption, startup time and response times.
The results show that GraalVM starts over 90% faster than the JVM and uses on average 70% less memory. CPU usage was also consistently lower with GraalVM. Scalability was analyzed based on how resource consumption increased under higherload. Both JVM and GraalVM displayed relatively linear growth in resource usage asthe number of concurrent users increased. However, the difference in resource usage increased under higher loads, indicating that GraalVM scales more efficiently.Average response times were comparable, with a slight advantage for GraalVM.However, the JVM performed better in higher percentiles (P90 and P95), meaningit had fewer extremely slow responses.
GraalVM appears to be an efficient alternative for modern systems where low resource consumption and fast startup are priorities. At the same time, certain adaptations are required for full compatibility, especially in older systems that uses reflection and dynamic loading.
Abstract [sv]
Java är ett av världens mest använda programmeringsspråk och har varit populärt sedan 1990-talet. Den traditionella exekveringsmiljön, Java Virtual Machine (JVM),har dragits med begränsningar som lång uppstartstid och hög resursförbrukning. Detskapar problem i moderna miljöer där effektivitet är avgörande. Ett alternativ somväckt intresse är GraalVM, som erbjuder Ahead-of-Time (AoT)-kompilering ochmöjligheten att skapa optimerade binärfiler med lägre belastning på systemresurser.
För att jämföra teknikerna kördes en Java-applikation byggd med Spring Boot bådesom JVM-applikation och som AoT-kompilerad Native Image med GraalVM. Genom belastningstester med 100 till 1000 samtidiga användare mättes CPUanvändning, minnesförbrukning, uppstartstid och svarstider.
Resultaten visar att GraalVM startar applikationen över 90% snabbare än JVM ochförbrukar i snitt 70% mindre minne. Även CPU-användningen var konsekvent lägremed GraalVM. Skalbarheten analyserades utifrån hur resursförbrukningen ökade vidökad belastning. Både JVM och GraalVM uppvisade en relativt linjär ökning i resursanvändning i takt med antalet samtidiga användare. Däremot blev skillnaden i resursförbrukning mellan dem större vid högre belastningsnivåer, vilket tyder på attGraalVM skalar mer effektivt. De genomsnittliga svarstiderna var jämförbara, meden liten fördel för GraalVM. Däremot presterade JVM bättre i de högre percentilerna (P90 och P95), vilket innebär att JVM hade färre extremt långsamma svar.
GraalVM framstår som ett effektivt alternativ för moderna system där låg resursförbrukning och snabb uppstart är prioriterat. Samtidigt krävs viss anpassning för atttekniken ska fungera fullt ut, särskilt i äldre system som använder reflektion och dynamisk laddning.
Place, publisher, year, edition, pages
2025.
Keywords [en]
GraalVM, JVM, performance, compilation
Keywords [sv]
GraalVM, JVM, prestanda, kompilering
National Category
Computer Sciences
Identifiers
URN: urn:nbn:se:hig:diva-47488OAI: oai:DiVA.org:hig-47488DiVA, id: diva2:1973227
External cooperation
Lantmäteriet
Subject / course
Computer science
Educational program
Study Programme in Computer Science
Supervisors
Examiners
2025-06-232025-06-192025-10-02Bibliographically approved