Oracle GraalVM

Disponibil cu Java SE Universal Subscription fără costuri suplimentare, permite dezvoltarea de aplicații Java moderne prin crearea de aplicații bazate pe microservicii pentru implementări native în cloud, cu performanțe superioare și costuri mai mici.

Ce este Oracle GraalVM?

GraalVM definit

Oracle GraalVM este un JDK de mare performanță care poate accelera performanța aplicațiilor bazate pe Java și pe JVM folosind un compilator alternativ just-in-time (JIT). Acesta reduce latența aplicațiilor, îmbunătățește randamentul maxim prin reducerea timpului de colectare a gunoiului și oferă asistență Oracle non-stop.

Există, de asemenea, un utilitar de imagine nativă care compilează bytecodul Java în avans (AOT) și generează fișiere executabile native pentru unele aplicații care pornesc aproape instantaneu și utilizează foarte puține resurse de memorie.

GraalVM (compilatorul Graal, Truffle și kitul Oracle Java Development [JDK])

GraalVM a început în 2011 ca un proiect de cercetare la Oracle Labs pentru a crea o platformă de timp de execuție care poate rula mai multe limbaje de programare cu performanțe ridicate. Nucleul proiectului GraalVM este compilatorul GraalVM cu optimizare avansată, care este utilizat ca un compilator just-in-time (JIT) pentru mașina virtuală Java (JVM) sau de către funcția de imagine nativă GraalVM, pentru a compila bytecodurile Java în avans în cod nativ de mașină. Cadrul de implementare a limbajului Truffle al GraalVM funcționează împreună cu compilatorul GraalVM pentru a rula JavaScript, Python, Ruby și alte limbaje acceptate pe JVM cu performanțe remarcabile.

Atunci când se utilizează GraalVM în modul JIT, JVM folosește compilatorul GraalVM JI pentru a crea un cod de mașină specific platformei din bytecodul Java în timpul rulării aplicației. Compilarea se realizează în mod incremental în timpul execuției programului, cu optimizare suplimentară aplicată codului care este executat frecvent. Această abordare garantează rularea extrem de rapidă a codului din hotspot-uri, datorită alinierii agresive, analizei parțiale a scăpărilor și altor optimizări avansate. Unele optimizări reduc alocările de obiecte, ceea ce diminuează efortul agentului de colectare a gunoiului. Acest aspect contribuie la îmbunătățirea performanțelor de vârf ale aplicațiilor care rulează pe termen lung.

Utilitarul de imagine nativă GraalVM poate, de asemenea, să compileze bytecode-ul Java pentru a genera fișiere executabile native ale mașinii în avans (de exemplu, în momentul creării). Aceste fișiere executabile pornesc aproape instantaneu și consumă o fracțiune din memoria care ar fi utilizată de aceeași aplicație Java care rulează pe JVM. Fișierele executabile native sunt, de asemenea, compacte, deoarece includ doar clasele, metodele și bibliotecile dependente de care are nevoie aplicația.

GraalVM susține, de asemenea, interoperabilitatea multilingvă prin intermediul cadrului de implementare a limbajului Truffle. Truffle le permite programelor scrise în limbile acceptate să utilizeze biblioteci multilingve. De exemplu, un program JavaScript poate intercepta metode Ruby și poate partaja valori fără a face reproduceri. Atunci când rulează pe JVM, Truffle colaborează cu compilatorul GraalVM pentru a compila limbajele acceptate în codul nativ al mașinii pentru o performanță optimă, la fel ca Java.

Aflați mai multe despre compilatorul GraalVM, citind cartea electronică GraalVM for Dummies.

Oracle GraalVM

Compilatorul GraalVM include o serie de algoritmi de optimizare suplimentari, care oferă îmbunătățiri semnificative în ceea ce privește performanța și consumul de resurse. Caracteristicile native ale imaginii GraalVM acceptă o serie de funcții avansate, inclusiv colectorul de gunoi G1, indicatori comprimați și optimizarea bazată pe profiluri, care ajută compilatorul să genereze un cod mai eficient.

GraalVM este inclus în produsele Java SE, fără costuri suplimentare. Acesta include asistență non-stop din partea Oracle, cu acces la remedieri de securitate și actualizări esențiale pentru performanțe și fiabilitate mai predictibile. Pentru migrarea Java în cloud, GraalVM poate fi utilizat gratuit în Oracle Cloud Infrastructure (OCI).

De ce să utilizați Oracle GraalVM

GraalVM le permite dezvoltatorilor să creeze coduri mai eficiente, cu o izolare mai bună și o flexibilitate mai mare pentru mediile cloud sau hibride. Iată câteva dintre motivele pentru care tot mai multe întreprinderi folosesc în prezent GraalVM:

  • Adaptarea rapidă la o piață în schimbare. Aplicațiile de afaceri actuale trebuie să proceseze volume tot mai mari de date și să răspundă rapid la solicitările clienților. Aplicațiile Java pot evolua pentru a ține pasul cu această evoluție, ajutându-i pe dezvoltatori să sporească eficiența performanței aplicațiilor și să reducă în același timp costurile IT.
  • Capacitatea de a construi aplicații Java moderne care utilizează microservicii și containere pentru cloud native. Microserviciile sunt mini-aplicații independente, care îndeplinesc o singură funcție. Aplicațiile de afaceri utilizează de obicei sute de servicii și fiecare dintre acestea trebuie să pornească rapid pentru a reduce la minimum latența și costurile de utilizare a cloud-ului. Cu alte cuvinte, plătiți doar pentru ceea ce utilizați.
  • Îmbunătățiți productivitatea dezvoltatorilor prin cultivarea unui ecosistem în care diferite limbaje de programare pot funcționa împreună pe o singură JVM.

Cazuri de utilizare a GraalVM

Creșteți performanța și extindeți aplicațiile Java existente .

Inovațiile GraalVM ajută codurile Java să țină pasul cu exigențele informatice actuale, oferind performanțe mai rapide pentru a răspunde rapid nevoilor clienților. Optimizatorul avansat îmbunătățește randamentul maxim. De asemenea, optimizează consumul de memorie prin reducerea la minimum a alocărilor de obiecte pentru a diminua timpul petrecut pentru colectarea gunoiului. GraalVM care rulează în modul JIT poate crește performanța cu până la 50%. Astfel, spațiul de memorie se eliberează mai repede, ceea ce vă permite să executați alte sarcini de lucru pe aceeași infrastructură și să reduceți costurile IT.

Construiți aplicații native în cloud

Utilitarul de imagine nativ al Oracle GraalVM compilează în avans aplicațiile în bytecod Java în programe binare ale mașinii. Executabilele native pornesc de aproape 100 de ori mai repede și consumă cu până la 5 ori mai puțină memorie în comparație cu rularea pe JVM.

Graalvm Enterprise nativ
Figura 1 - Executabilele native pornesc aproape instantaneu și consumă foarte puțină memorie în comparație cu Go sau Java HotSpot.

Pe măsură ce organizațiile transferă sarcinile de lucru în cloud și plătesc la oră pentru utilizarea resurselor de sistem, GraalVM poate contribui la realizarea de economii de costuri operaționale. Aceste rezultate fac ca executabilele native generate de GraalVM să fie ideale pentru implementarea microserviciilor, un domeniu susținut de principalele cadre de microservicii, cum ar fi Helidon, Micronaut, Quarkus și Spring Boot.

Dezvoltați programe în mai multe limbi și îmbunătățiți productivitatea

Puteți rula Java și alte limbaje, cum ar fi JavaScript, pe JVM cu performanțe excelente. SuiteScript de la Oracle NetSuite este un limbaj de extensie pentru ca utilizatorii finali să personalizeze aplicațiile care rulează pe NetSuite. Oracle GraalVM permite NetSuite să integreze un timp de execuție JavaScript bazat pe Truffle, care poate compila JavaScript într-un cod de mașină care rulează de 4 ori mai repede decât SuiteScript rulat pe JVM.

Cum să îmbunătățiți performanța și eficiența aplicațiilor

GraalVM conține un compilator de optimizare avansat, care generează cod de mașină în timp ce rulează programul JIT, pentru accelerarea performanței aplicațiilor Java. Prin compilarea în avans, imaginea nativă pornește rapid și utilizează mai puțină memorie, ceea ce o face ideală pentru implementarea nativă în cloud. Sprijină programele multilingve pentru a îmbunătăți productivitatea, permițându-le dezvoltatorilor să utilizeze cele mai bune biblioteci necesare pentru soluționarea problemelor de afaceri, indiferent de limba în care acestea sunt scrise.