Met de nieuw uitgebrachte versie 22.0 van de door Oracle ontwikkelde GraalVM polyglot runtime, willen de ontwikkelaars van het open source-project de ontwikkelaarservaring verbeteren. Onder andere biedt het verbeteringen voor Ruby, WebAssembly, Java en Python.
Uitgebracht op 24 januari voor JDK 11 en JDK 17 , de meest recente ondersteuningsreleases voor de lange termijn van standaard Java, GraalVM 22.0 Community Edition kunnen worden gedownload van GitHub. Enterprise builds van GraalVM 22.0 zijn verkrijgbaar bij Oracle.
Een belangrijk aandachtspunt van de release is de Native Image-technologie van GraalVM, die Java-code van tevoren compileert in stand-alone uitvoerbare bestanden, waarbij meerdere programmeertalen worden ondersteund. Om het leven van ontwikkelaars gemakkelijker te maken, hebben de ontwikkelaars van GraalVM de afgelopen paar releases gewerkt aan het verkorten van de tijd voor het bouwen van afbeeldingen en het verminderen van het geheugengebruik.
In GraalVM 22.0 zijn wijzigingen aangebracht om de afbeeldingsgrootte te verkleinen, met behulp van een meer gecomprimeerde coderingsmethode voor metadata van stapelframes om de grootte van alle afbeeldingen te verkleinen. In de GraalVM Enterprise-editie gaat een geoptimaliseerde implementatie van String.format() nog verder, met de mogelijkheid om lokalisatieklassen onbereikbaar te maken om de afbeeldingsgrootte aanzienlijk te verkleinen.
GraalVM 22.0 verandert ook de build-output voor Native Image, die nu het bouwproces in fasen opsplitst en de huidige fase visualiseert, met code- en heap-uitsplitsingen en statistieken van de build. Daarnaast werd de Native Build Tools technologie voor GraalVM voorzien van verbeteringen zoals een betere integratie met de native agent.
GraalVM 22.0 verandert ook de manier waarop de compiler omgaat met profileringsinformatie. Ontworpen als een optimaliserende JIT-compiler, kan de compiler overschakelen naar een AOT-modus (vooruit), waar grote optimalisaties een redelijk werk kunnen doen, zelfs bij afwezigheid van profielen. Dit helpt Truffle -talen in gevallen waarin niet-geprofileerde patronen hot worden, en in Native Image zonder profielgestuurde optimalisaties.
Andere verbeteringen in GraalVM 22.0: