See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 3162|Vastuse: 1

[Kommunikatsioon] Sissejuhatus ja erinevus JIT-i ja AOT kompileerimise vahel .NET-is

[Kopeeri link]
Postitatud 15.02.2024 17:17:46 | | | |
Terminoloogia

CLI: Common Language Infrastructure on .NET raamistiku spetsifikatsioon, mis määratleb keelesõltumatu, arhitektuurideülest käitusaega. Seetõttu saame arendada tarkvara erinevates kõrgetasemelistes keeltes spetsifikatsiooni alusel, mis suudab töötada erinevates arvutiarhitektuurides ilma muudatusteta

CLR: Common Language Runtime. on spetsifikatsioon, mis tagab, et töökeskkond on keelest sõltumatu ja arhitektuurideülene

CTS: Common Type System

CLS: Ühise keele spetsifikatsioon

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

IL: Immediate Language Intermediate Language, Advanced Language Compiler kompileerib keerukate keelte lähtekoodi vahekeeltesse.

JIT: Just In Time Compiler kompileerib vahekeele masinkoodiks, mida arvuti mõistab ja mida saab seejärel käivitada

Lähtekood kompileeritakse IL-i C# kompilaatoriga (st programmid, dll-id, ex-failid jne). CLR laadib need IL-id, kompileerib need masinkoodiks JIT-i kaudu ja käivitatakse lõpuks, nagu näidatud järgmisel joonisel:



JIT (Just-in-time kompilaator) kompileeritakse jooksvalt

Just-in-time kompilaator (JIT) on osa .NET Common Language Runtime'ist (CLR) ja vastutab . .NET programm, sõltumata sellest. .NET programmeerimiskeel. Keelespetsiifilised kompilaatorid teisendavad lähtekoodi vahekeelteks. See vahekeel teisendatakse seejärel masinkoodiks just-in-time (JIT) kompilaatori poolt. See masinkood on spetsiifiline arvutikeskkonnale, kus JIT-kompilaator töötab.  JIT kompilaatoritöö: JIT kompilaatorid peavad kiirendama koodi täitmist ja pakkuma tuge mitmele platvormile. Nii see töötab:



JIT-kompilaator teisendab Microsoft Intermediate Language'i (MSIL) või Common Intermediate Language (CIL) masinkoodiks. See tehakse enne MSIL-i või CIL-i sooritamist. MSIL teisendatakse vajadusel masinkoodiks, st JIT kompilaator kompileerib MSIL-i või CIL-i vastavalt vajadusele, mitte ei kompileeri kogu koodi. Salvesta kompileeritud MSIL või CIL nii, et seda saaks vajadusel kasutada järgmiste kõnede jaoks.

JIT plussid:

  • Seda saab kompileerida ja genereerida reaalajas vastavalt praegusele riistvaraolukorrale
  • Optimaalne masinakäskude jada saab genereerida vastavalt praegusele programmitoimingule
  • Kui programm peab toetama dünaamilist linkimist, saab ta kasutada ainult JIT kompileerimismeetodit
  • Koodi saab kohandada vastavalt mälu tegelikule olukorrale protsessis, et mälu paremini ära kasutada


JIT miinused:

  • Kompileerimine nõuab käitusaja ressursse, mis põhjustab protsessi tõrke käivitamisel
  • Kompileerimine võtab tööaega ning mõningaid koodikompileerimise optimeerimisi ei saa täielikult toetada, seega on vaja tasakaalustada sujuvust ja aega
  • Kompileerimise ettevalmistamine ja sageli kasutatavate meetodite tuvastamine on ajamahukas ning algne kompileerimine ei saavuta kõrgeimat tulemust


AOT (Apre-of-time kompilaator) kompileeritakse eelnevalt

Arvutiteaduses tähendab varajane kompileerimine (AOT kompilatsioon) tavaliselt kõrgetasemelise programmeerimiskeele kompileerimist (enamasti) madala taseme keelde enne programmi käivitamist, tavaliselt ehituse ajal, et vähendada töökoormust, mis on vaja käitusajal teha.

Enamasti ei ole see sama mis kõrgetasemeliste programmeerimiskeelte (näiteks C või C++) või vahepealsete esituste, nagu Java baitkood või . NET Framework Common Intermediate Language (CIL) kood), mis on kompileeritud natiivseks (süsteemisõltuvaks) käitumisega seotuks. masinkoodi, et tulemuseks olevaid binaare saaks natiivselt käivitada, nagu tavalist natiivset kompilaatorit. Kui seda kasutatakse just selles keskkonnas, nähakse seda sageli just-in-time (JIT) kompileerimise vastandina.

AOT kompileerimine toimub enne, kui programm on kompileeritud või paigaldatud, st see eelkompileerib skripte või baitkoodi masinkoodiks ja käivitab need otse vajadusel. See võib parandada programmi käivituskiirust ja vältida kompileerimisprotsessist tingitud viivitusi.

AOT plussid:

  • Kompileerimine enne programmi käivitamist väldib kompileerimise jõudlust ja mälutarbimist käitusajal
  • Tippsooritust saab saavutada programmi alguses
  • See võib oluliselt kiirendada programmi täitmise efektiivsust


AOT miinused:

  • Kompileerimine enne programmi käivitamist pikendab programmi paigaldamise aega
  • Eelkompileeritud sisu salvestamine võtab rohkem mälu
  • Kõrgetasemeliste keelte järjepidevuse ohverdamine


Kokkuvõte

JIT: Kõrge läbilaskevõime, käitusaegse jõudluse boonus, saab töötada kiiremini ja dünaamiliselt genereerida koodi jne, kuid käivitamine on suhteliselt aeglane ning JIT kihistamise mehhanismi käivitamiseks on vaja teatud aega ja kõnede sagedust
AOT: Madal mälukasutus, kiire käivituskiirus võimaldab käivitamisaega staatiliselt siduda lõpliku programmiga ilma käitusajata, kuid käitusajal jõudluse boonust ei ole ning seda ei saa programmi käivituse järgi edasi optimeerida



Viide:

Hüperlingi sisselogimine on nähtav.
Hüperlingi sisselogimine on nähtav.
Hüperlingi sisselogimine on nähtav.
Hüperlingi sisselogimine on nähtav.
Hüperlingi sisselogimine on nähtav.
Hüperlingi sisselogimine on nähtav.
Hüperlingi sisselogimine on nähtav.





Eelmine:.NET/C# Kõrge jõudlus ühendab mitu faili üheks failiks
Järgmine:.NET/C# kogumiloend, HashSet, et määrata, kas elemendil on võrdlus
 Üürileandja| Postitatud 10.03.2024 10:58:59 |
.NET/C# Roslyn kompilaatoriplatvorm
https://www.itsvse.com/thread-10740-1-1.html
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com