Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 3162|Odgovoriti: 1

[Komunikacija] Uvod in razlika med JIT in AOT prevajanjem v .NET

[Kopiraj povezavo]
Objavljeno na 15. 02. 2024 17:17:46 | | | |
Terminologija

CLI: Common Language Infrastructure je specifikacija v okviru .NET ogrodja, ki določa jezikovno neodvisen in medarhitekturni runtime. Zato lahko razvijamo programsko opremo v različnih visokonivojskih jezikih po specifikaciji, ki lahko teče v različnih računalniških arhitekturah brez sprememb

CLR: Izvajanje skupnega jezika. je specifikacija, ki zagotavlja, da je operacijsko okolje jezikovno neodvisno in medarhitekturno

CTS: Skupni tipni sistem

CLS: Specifikacija skupnega jezika

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

IL: Immediate Language Intermediate Language, Advanced Language Compiler prevaja izvorno kodo naprednih jezikov v vmesne jezike.

JIT: Just In Time Compiler prevede vmesni jezik v strojno kodo, ki jo računalnik razume, nato pa jo lahko izvede

Izvorna koda se v IL prevede s C# prevajalnikom (npr. programi, dll-ji, exe datoteke itd.). CLR naloži te IL-e, jih prevede v strojno kodo preko JIT in se končno izvede, kot je prikazano na naslednji sliki:



JIT (Just-in-time prevajalnik) se prevaja sproti

Prevajalnik just-in-time (JIT) je del Common Language Runtime (CLR) v .NET in je odgovoren za upravljanje . .NET program, ne glede na katerikoli . .NET programski jezik. Jezikovno specifični prevajalniki pretvarjajo izvorno kodo v vmesne jezike. Ta vmesni jezik se nato pretvori v strojno kodo s prevajalnikom just-in-time (JIT). Ta strojna koda je specifična za računalniško okolje, v katerem teče prevajalnik JIT.  Delo JIT prevajalnikov: JIT prevajalniki morajo pospešiti izvajanje kode in zagotoviti podporo za več platform. Tako deluje:



JIT prevajalnik pretvori Microsoft Intermediate Language (MSIL) ali Common Intermediate Language (CIL) v strojno kodo. To se opravi pred izvajanjem MSIL ali CIL. MSIL se po potrebi pretvori v strojno kodo, torej JIT prevajalnik prevaja MSIL ali CIL po potrebi, namesto da bi prevajal celotno kodo. Shranjujte prevedeni MSIL ali CIL, da ga lahko uporabite za nadaljnje klice, če je potrebno.

Prednosti JIT:

  • Lahko se prevede in generira v realnem času glede na trenutno strojno situacijo
  • Optimalno zaporedje strojnih ukazov je mogoče generirati glede na trenutno delovanje programa
  • Ko program potrebuje podporo dinamičnemu povezovanju, lahko uporablja le metodo prevajanja JIT
  • Kodo je mogoče prilagoditi glede na dejansko stanje pomnilnika v procesu, da se pomnilnik bolje izkoristi


Slabosti JIT:

  • Prevajanje zahteva vire v času izvajanja, kar povzroči zatikanje procesa med izvajanjem
  • Prevajanje vzame čas izvajanja, nekatere optimizacije prevajanja kode pa niso v celoti podprte, zato je potrebno uravnotežiti tekočnost in čas
  • Priprava prevajanja in identifikacija pogosto uporabljenih metod je časovno zahtevna, začetna prevajanja pa ne dosežejo najvišje zmogljivosti


AOT (Ahead-of-time prevajalnik) se prevede vnaprej

V računalništvu je zgodnje prevajanje (AOT prevajanje) dejanje prevajanja (običajno) visokonivojskega programskega jezika v (ponavadi) nizkonivojski jezik pred izvajanjem programa, običajno med gradnjo, da se zmanjša količina truda, ki ga je treba opraviti med izvajanjem.

Večinoma to ni enako kot združevanje visokonivojskih programskih jezikov (kot sta C ali C++) ali vmesnih predstavitev, kot sta Java bajtkoda ali . NET Framework Common Intermediate Language (CIL) koda), prevedena tako, da je nativna (sistemsko odvisna) povezana z vedenjem. strojna koda, tako da se lahko nastale binarne datoteke izvajajo nativno, podobno kot standardni nativni prevajalnik. Ko se uporablja v tem specifičnem okolju, ga pogosto vidimo kot nasprotje prevajanja po principu just-in-time (JIT).

Prevajanje AOT poteka pred prevajanjem ali namestitvijo programa, torej predhodno prevaja skripte ali bajtkode v strojno kodo in jih izvaja neposredno, kadar je to potrebno. To lahko izboljša hitrost zagona programa in prepreči zamude, ki jih povzroča proces prevajanja.

Prednosti AOT:

  • Prevajanje pred zagonom programa preprečuje zmogljivost prevajanja in porabo pomnilnika med izvajanjem
  • Vrhunsko uspešnost je mogoče doseči že zgodaj v programu
  • Lahko bistveno pospeši učinkovitost izvajanja programov


Slabosti AOT:

  • Prevajanje pred zagonom programa poveča čas namestitve programa
  • Shranjevanje predkompilirane vsebine porabi več pomnilnika
  • Žrtvovanje doslednosti visokonivojskih jezikov


Povzetek

JIT: Visoka prepustnost, bonus zmogljivosti med izvajanjem, lahko teče hitreje in dinamično generira kodo itd., vendar je zagon razmeroma počasen in zahteva določeno količino časa ter frekvenco klicev za sprožitev mehanizma plasti JIT
AOT: Nizka poraba pomnilnika, hitra zagonska hitrost, omogoča neposredno povezavo izvajanja statično s končnim programom brez časa izvajanja, vendar ni bonusa za zmogljivost med izvajanjem in ni mogoče dodatno optimizirati glede na potek programa



Referenčni:

Prijava do hiperpovezave je vidna.
Prijava do hiperpovezave je vidna.
Prijava do hiperpovezave je vidna.
Prijava do hiperpovezave je vidna.
Prijava do hiperpovezave je vidna.
Prijava do hiperpovezave je vidna.
Prijava do hiperpovezave je vidna.





Prejšnji:.NET/C# Visokozmogljiva združi več datotek v eno datoteko
Naslednji:.NET/C# seznam zbirke, HashSet za ugotavljanje, ali ima element referenčno vrednost
 Najemodajalec| Objavljeno na 10. 03. 2024 10:58:59 |
.NET/C# Roslyn prevajalniška platforma
https://www.itsvse.com/thread-10740-1-1.html
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com