Java Academy · Oppitunti

Mikä GraalVM on

Tehokas monikielinen virtuaalikone.

Oppitunti 1/413 vaihetta

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.
Aloita maksutta

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.

Kaikki tämän kurssin oppitunnit

  1. Mikä GraalVM on
  2. Natiivin imagen rakentaminen
  3. Reflektio ja määritys
  4. Natiivin imagen kompromissit
← Takaisin: Java Academy