Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 3162|Vastaus: 1

[Viestintä] Johdanto ja ero JIT:n ja AOT:n kääntämisen välillä .NET:ssä

[Kopioi linkki]
Julkaistu 15.2.2024 17.17.46 | | | |
Terminologia

CLI: Common Language Infrastructure on .NET-kehyksen määrittely, joka määrittelee kieliriippumaton, arkkitehtuurin välisen ajon. Siksi voimme kehittää ohjelmistoja eri korkean tason kielillä määrittelyn mukaisesti, jotka toimivat eri tietokonearkkitehtuureissa ilman muutoksia

CLR: Common Language Runtime. on määrittely, joka varmistaa, että käyttöympäristö on kielestä riippumaton ja arkkitehtoninen

CTS: Yleinen tyyppijärjestelmä

CLS: Yhteisen kielen määrittely

FCL: Framework Class Library 架构类库,包含两部分: 基础类库 Base Class  Library 和成品类库

IL: Immediate Language Intermediate Language, Advanced Language Compiler kääntää edistyneiden kielten lähdekoodin välikieliksi.

JIT: Just In Time Compiler kääntää välikielen konekoodiksi, jonka tietokone ymmärtää, ja se voidaan sitten suorittaa

Lähdekoodi käännetään IL:ään C#-kääntäjällä (eli ohjelmat, dll:t, exe:t jne.). CLR lataa nämä IL:t, kääntää ne konekoodiksi JIT:n kautta ja suoritetaan lopuksi, kuten seuraavassa kuvassa näkyy:



JIT (Just-in-time -kääntäjä) käännetään lennosta

Just-in-time -kääntäjä (JIT) on osa .NET:n Common Language Runtimea (CLR) ja vastaa . .NET-ohjelma, riippumatta siitä. .NET-ohjelmointikieli. Kielikohtaiset kääntäjät muuntavat lähdekoodin välikieliksi. Tämä välimuotoinen kieli muunnetaan sitten konekoodiksi just-in-time (JIT) -kääntäjällä. Tämä konekoodi on spesifinen tietokoneympäristölle, jossa JIT-kääntäjä toimii.  JIT-kääntäjätyö: JIT-kääntäjien täytyy nopeuttaa koodin suoritusta ja tarjota tuki useille alustoille. Näin se toimii:



JIT-kääntäjä muuntaa Microsoft Intermediate Language (MSIL) tai Common Intermediate Language (CIL) -kielen konekoodiksi. Tämä tehdään ennen MSIL- tai CIL-suoritusta. MSIL muunnetaan konekoodiksi tarpeen mukaan, eli JIT-kääntäjä kääntää MSIL:n tai CIL:n tarpeen mukaan sen sijaan, että koko koodi käännettäisiin. Tallenna käännetty MSIL tai CIL niin, että sitä voidaan käyttää myöhemmissä kutsuissa tarvittaessa.

JIT:n hyvät puolet:

  • Se voidaan kääntää ja generoida reaaliajassa nykyisen laitteistotilanteen mukaan
  • Optimaalinen koneen käskyjärjestys voidaan tuottaa nykyisen ohjelman operaation mukaan
  • Kun ohjelman täytyy tukea dynaamista linkitystä, se voi käyttää vain JIT-käännösmenetelmää
  • Koodia voidaan säätää muistin todellisen tilanteen mukaan prosessin aikana, jotta muistia hyödynnetään paremmin


JIT:n miinukset:

  • Kääntäminen vaatii ajonaikaisen ajonajan resurssit, mikä aiheuttaa prosessin nykimisen suorituksen aikana
  • Kääntäminen vie aikaa, ja jotkut koodin kääntämisen optimoinnit eivät ole täysin tuettuja, joten on tarpeen tasapainottaa sujuvuus ja aika
  • Käännösvalmistelu ja usein käytettyjen menetelmien tunnistaminen vievät aikaa, eikä alkuperäinen käännös saavuta parasta suorituskykyä


AOT (Aheadof-time compiler) käännetään etukäteen

Tietojenkäsittelytieteessä varhainen kääntäminen (AOT-käännös) tarkoittaa (yleensä) korkean tason ohjelmointikielen kääntämistä (yleensä) matalan tason kieleksi ennen ohjelman suorittamista, yleensä rakennusvaiheessa, jotta ajonaikainen työmäärä vähenee.

Useimmiten se ei ole sama asia kuin korkean tason ohjelmointikielten (kuten C tai C++) tai väliesitysten, kuten Java-tavukoodin tai . NET Framework Common Intermediate Language (CIL) -koodi), joka on käännetty natiiviksi (järjestelmäriippuvaiseksi) käyttäytymiseen liittyväksi. konekoodia, jotta tuloksena olevat binäärit voidaan suorittaa natiivisti, aivan kuten tavallinen natiivikääntäjä. Kun sitä käytetään tässä erityisessä ympäristössä, sitä pidetään usein just-in-time (JIT) -kääntämisen vastakohtana.

AOT-kääntäminen tapahtuu ennen ohjelman kääntämistä tai asennusta, eli se esikääntää skriptit tai tavukoodit konekoodiksi ja suorittaa ne suoraan tarvittaessa. Tämä voi parantaa ohjelman käynnistysnopeutta ja välttää käännösprosessin aiheuttamat viiveet.

AOT:n plussat:

  • Käännös ennen ohjelman käynnistymistä estää käännössuorituskyvyn ja muistin kulutuksen ajonaikaisesti
  • Huippusuorituskyky voidaan saavuttaa ohjelman alkuvaiheessa
  • Se voi merkittävästi nopeuttaa ohjelmien suorituksen tehokkuutta


AOT:n miinukset:

  • Käännös ennen ohjelman käynnistymistä pidentää ohjelman asennusaikaa
  • Valmiiksi käännetyn sisällön tallentaminen vie enemmän muistia
  • Korkean tason kielten johdonmukaisuuden uhraaminen


yhteenveto

JIT: Korkea läpimeno, suorituskyvyn bonus, voi ajaa nopeammin ja generoida koodia dynaamisesti jne., mutta käynnistyminen on suhteellisen hidasta ja vaatii tietyn ajan ja kutsujen määrän JIT-kerrosmekanismin laukaisemiseen
AOT: Alhainen muistinkulutus, nopea käynnistysnopeus, voi suoraan yhdistää ajonaikaisen ohjelman staattisesti lopulliseen ohjelmaan ilman ajonaikaa, mutta suorituskyvyn bonusta ei ole, eikä sitä voi optimoida ohjelman suorituksen mukaan



Viittaus:

Hyperlinkin kirjautuminen on näkyvissä.
Hyperlinkin kirjautuminen on näkyvissä.
Hyperlinkin kirjautuminen on näkyvissä.
Hyperlinkin kirjautuminen on näkyvissä.
Hyperlinkin kirjautuminen on näkyvissä.
Hyperlinkin kirjautuminen on näkyvissä.
Hyperlinkin kirjautuminen on näkyvissä.





Edellinen:.NET/C# Korkea suorituskyky yhdistää useita tiedostoja yhdeksi tiedostoksi
Seuraava:.NET/C#-kokoelmalista, HashSet, jolla voidaan määrittää, onko elementillä vertailu
 Vuokraisäntä| Julkaistu 10.3.2024 10.58.59 |
.NET/C# Roslyn-kääntäjäalusta
https://www.itsvse.com/thread-10740-1-1.html
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com