|
|
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 tiedostoksiSeuraava:.NET/C#-kokoelmalista, HashSet, jolla voidaan määrittää, onko elementillä vertailu
|