Mikä GraalVM on
Tehokas monikielinen virtuaalikone.
Mikä GraalVM on on ilmainen Java Academy-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Java Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Java Academy-kurssilla on yhteensä 4 oppituntia.
Mikä GraalVM on
GraalVM on tehokas JDK-jakelu, joka perustuu moderniin just-in-time-kääntäjään nimeltä Graal. Se suorittaa tavallista Javaa monissa kuormituksissa nopeammin ja tarjoaa kaksi keskeistä ominaisuutta: polyglot-suorituksen ja ahead-of-time-natiivikäännöksen.
Suoraan korvaava JDK
GraalVM on täysimittainen JDK. Nykyiset javac-, java- ja tavukoodinne toimivat muuttumattomina. Ero on taustalla olevassa kääntäjässä ja sen mukana toimitettavissa lisätyökaluissa, kuten native-image-työkalussa.
public class Main {
public static void main(String[] args) {
System.out.println("Runs the same on GraalVM as on any JDK");
System.out.println("Java: " + System.getProperty("java.version"));
}
}Graal-kääntäjä
Graal JIT on kirjoitettu itse Javalla. Se tekee tehokkaita optimointeja, kuten edistynyttä inliningia, osittaista escape-analyysiä ja spekulatiivista optimointia, ja päihittää usein perinteisen C2-kääntäjän runsaasti abstraktioita ja muistivarauksia sisältävässä koodissa.
Polyglot Trufflen avulla
GraalVM sisältää Truffle-kehyksen, jonka avulla useat kielet voivat toimia samassa virtuaalikoneessa ja jopa kutsua toisiaan. Toteutukset ovat saatavilla JavaScriptille, Pythonille, Rubylle, R:lle ja WebAssemblylle. Arvot voivat ylittää kielirajat pienellä lisäkustannuksella.
Polyglot-esimerkki (käsitteellinen)
Polyglot-rajapinnan avulla luotte Context-kontekstin ja suoritatte toisella kielellä olevaa koodia, minkä jälkeen luette tuloksen takaisin Javaan. Luokat sijaitsevat paketissa org.graalvm.polyglot.
// Requires GraalVM polyglot runtime
import org.graalvm.polyglot.*;
public class Main {
public static void main(String[] args) {
try (Context ctx = Context.create()) {
Value sum = ctx.eval("js", "40 + 2");
System.out.println(sum.asInt());
}
}
}Native Image
native-image-työkalu kääntää Javan ahead of time itsenäiseksi natiivisuoritettavaksi tiedostoksi. Ajon aikana ei tarvita JVM:ää, luokkien latausta tai JIT-lämmitystä — ohjelma käynnistyy millisekunneissa.
Versiot
GraalVM:stä on saatavilla maksuton Community Edition ja lisäoptimointeja sisältävä Oracle GraalVM -jakelu. Molempiin sisältyy native-image; useimpiin oppimistarkoituksiin ja moniin tuotantokäyttöihin yhteisöversio riittää.
Miksi tämä on tärkeää pilvessä
Nopea käynnistyminen ja pieni muistinkulutus tekevät native image -tiedostoista ihanteellisia palvelimettomiin funktioihin, komentorivityökaluihin ja säilöihin, jotka skaalautuvat nollaan. Natiivina toimiva Java-palvelu voi käynnistyä yhtä nopeasti kuin vastaava Go-binaari, mikä poistaa JVM:n pitkäaikaisen haitan.
JIT vai AOT
Kaksi suoritusmallia toimii rinnakkain:
- JIT (Graal-kääntäjä) optimoi ajon aikana reaaliaikaisen profiloinnin avulla — se tarjoaa parhaan huippuläpäisykyvyn pitkään käynnissä oleville palvelimille.
- AOT (native-image) kääntää ohjelman ennen sen suorittamista — se tarjoaa parhaan käynnistysajan ja pienimmän muistinkulutuksen.
Kehysten tuki
Spring Bootin, Quarkusin ja Micronautin kaltaiset modernit kehykset tarjoavat ensiluokkaisen native-image-tuen. Ne laskevat määritykset valmiiksi koontiaikana, jotta sovellus voidaan kääntää siististi natiivibinaariksi.
GraalVM:n valinta
Ottakaa GraalVM käyttöön, kun haluatte paremman JIT-läpäisykyvyn runsaasti abstraktioita sisältävälle koodille, tarvitsette polyglot-yhteentoimivuutta tai haluatte nopeasti käynnistyviä ja vähän muistia käyttäviä natiivisuoritettavia tiedostoja. Se on tavallisen JDK:n laajennettu versio, joten käyttöönoton riski on pieni.
Pikatarkistus
Testatkaa, miten hyvin ymmärrätte GraalVM:ää.
Kertaus
Tutustuitte GraalVM:ään:
- Täysimittainen JDK, joka perustuu tehokkaaseen Graal JIT -kääntäjään.
- Truffle mahdollistaa polyglot-suorituksen ja kutsut kielten välillä.
- native-image kääntää Javan etukäteen natiivisuoritettaviksi tiedostoiksi.
- JIT suosii pitkään käynnissä olevien ohjelmien läpäisykykyä; AOT suosii nopeaa käynnistystä ja pientä muistinkulutusta.
- Spring Bootin, Quarkusin ja Micronautin kaltaiset kehykset tukevat natiivikoontia.
Opi Java tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 104
- Oppitunnit
- 374
Usein kysytyt kysymykset
Onko oppitunti ”Mikä GraalVM on” ilmainen?
Kyllä – oppitunnin ”Mikä GraalVM on” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Java Academy-kurssin, päivitä CoddyKit PROhon. Java Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Mikä GraalVM on”?
Tehokas monikielinen virtuaalikone. Harjoittelet Java Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Java Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Java Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.
Kuinka kauan ”Mikä GraalVM on”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Java Academy-oppitunnilla?
Kyllä. Jokainen Java Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.