Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 3162|Atbildi: 1

[Paziņojums] Ievads un atšķirība starp JIT un AOT kompilāciju .NET

[Kopēt saiti]
Publicēts 15.02.2024 17:17:46 | | | |
Terminoloģija

CLI: Common Language Infrastructure ir specifikācija saskaņā ar .NET ietvaru, kas definē valodas agnostisku, starparhitektūras izpildlaiku. Tāpēc mēs varam izstrādāt programmatūru dažādās augsta līmeņa valodās saskaņā ar specifikāciju, kas var darboties dažādās datoru arhitektūrās bez izmaiņām

CLR: Common Language izpildlaiks. ir specifikācija, kas nodrošina, ka darbības vide ir neatkarīga no valodas un starparhitektūras

CTS: Kopējā tipa sistēma

CLS: Kopējās valodas specifikācija

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

IL: Immediate Language Intermediate Language, Advanced Language Compiler apkopo uzlaboto valodu pirmkodu vidējās valodās.

JIT: Just In Time Compiler kompilē starpvalodu mašīnkodā, ko dators var saprast, ko pēc tam var izpildīt

Avota kodu IL kompilē C# kompilators (t.i., programmas, dlls, exes utt.). CLR ielādē šos IL, kompilē tos mašīnkodā, izmantojot JIT, un beidzot tiek izpildīts, kā parādīts nākamajā attēlā:



JIT (Just-in-time kompilators) tiek kompilēts lidojumā

Just-in-time kompilators (JIT) ir daļa no Common Language Runtime (CLR) .NET un ir atbildīgs par . .NET programma, neatkarīgi no jebkuras . .NET programmēšanas valoda. Valodas kompilatori pārvērš avota kodu starpvalodās. Pēc tam šo starpvalodu pārvērš mašīnkodā just-in-time (JIT) kompilators. Šis mašīnkods ir specifisks datorvidei, kurā darbojas JIT kompilators.  JIT kompilatora darbs: JIT kompilatoriem ir jāpaātrina koda izpilde un jānodrošina atbalsts vairākām platformām. Lūk, kā tas darbojas:



JIT kompilators pārvērš Microsoft Intermediate Language (MSIL) vai Common Intermediate Language (CIL) par mašīnas kodu. Tas tiek darīts pirms MSIL vai CIL veikšanas. MSIL tiek konvertēts uz mašīnkodu pēc vajadzības, t.i., JIT kompilators kompilē MSIL vai CIL pēc vajadzības, nevis kompilē visu kodu. Saglabājiet kompilēto MSIL vai CIL, lai vajadzības gadījumā to varētu izmantot nākamajiem zvaniem.

JIT plusi:

  • To var apkopot un ģenerēt reāllaikā atbilstoši pašreizējai aparatūras situācijai
  • Optimālo mašīnas instrukciju secību var ģenerēt atbilstoši pašreizējai programmas darbībai
  • Ja programmai ir jāatbalsta dinamiskā saite, tā var izmantot tikai JIT kompilācijas metodi
  • Kodu var pielāgot atbilstoši faktiskajai atmiņas situācijai procesā, lai labāk izmantotu atmiņu


JIT mīnusi:

  • Kompilēšanai ir nepieciešami izpildlaika izpildlaika resursi, kas izpildes laikā izraisa procesa stostīšanos
  • Kompilācija aizņem izpildes laiku, un dažas koda kompilācijas optimizācijas nevar pilnībā atbalstīt, tāpēc ir nepieciešams līdzsvarot brīvību un laiku
  • Kompilācijas sagatavošana un biežāk izmantoto metožu identificēšana ir laikietilpīga, un sākotnējā kompilācija nesasniedz visaugstāko veiktspēju


AOT (Ahead-of-time kompilators) tiek kompilēts iepriekš

Datorzinātnēs agrīna kompilācija (AOT kompilācija) ir (parasti) augsta līmeņa programmēšanas valodas kompilēšana (parasti) zema līmeņa valodā pirms programmas izpildes, parasti būvēšanas laikā, lai samazinātu piepūli, kas jāveic izpildlaikā.

Lielākoties tas nav tas pats, kas apvienot augsta līmeņa programmēšanas valodas (piemēram, C vai C++) vai starpposma attēlojumus, piemēram, Java baitu kodu vai . NET Framework Common Intermediate Language (CIL) kods), kas kompilēts, lai tas būtu saistīts ar vietējo (no sistēmas atkarīgu) uzvedību. mašīnas kods, lai iegūtos bināros failus varētu izpildīt vietēji, tāpat kā standarta vietējo kompilatoru. Ja to izmanto šajā konkrētajā vidē, to bieži uzskata par pretstatu tieši laikā (JIT) kompilācijai.

AOT kompilācija notiek pirms programmas kompilēšanas vai instalēšanas, tas ir, tā iepriekš kompilē skriptus vai baitu kodus mašīnas kodā un izpilda tos tieši, ja nepieciešams. Tas var uzlabot programmas startēšanas ātrumu un izvairīties no kompilēšanas procesa izraisītās kavēšanās.

AOT plusi:

  • Kompilējot pirms programmas palaišanas, tiek izvairīts no kompilācijas veiktspējas un atmiņas patēriņa izpildlaikā
  • Maksimālo veiktspēju var sasniegt programmas sākumā
  • Tas var ievērojami paātrināt programmas izpildes efektivitāti


AOT mīnusi:

  • Kompilēšana pirms programmas palaišanas palielina programmas instalēšanai nepieciešamo laiku
  • Iepriekš kompilēta satura saglabāšana aizņem vairāk atmiņas
  • Augsta līmeņa valodu konsekvences upurēšana


Kopsavilkuma

JIT: Augsta caurlaidspēja, izpildlaika veiktspējas bonuss, var darboties ātrāk un var dinamiski ģenerēt kodu utt., bet tas ir salīdzinoši lēns un prasa noteiktu laiku un zvanu biežumu, lai aktivizētu JIT slāņošanas mehānismu
AOT: Zems atmiņas lietojums, ātrs startēšanas ātrums, var tieši saistīt izpildlaiku statiski ar galīgo programmu bez izpildlaika, bet nav izpildlaika veiktspējas bonusa, un to nevar tālāk optimizēt atbilstoši programmas darbībai



Atsauce:

Hipersaites pieteikšanās ir redzama.
Hipersaites pieteikšanās ir redzama.
Hipersaites pieteikšanās ir redzama.
Hipersaites pieteikšanās ir redzama.
Hipersaites pieteikšanās ir redzama.
Hipersaites pieteikšanās ir redzama.
Hipersaites pieteikšanās ir redzama.





Iepriekšējo:.NET/C# Augsta veiktspēja apvieno vairākus failus vienā failā
Nākamo:.NET/C# kolekcijas saraksts, HashSet, lai noteiktu, vai elementam ir etalons
 Saimnieks| Publicēts 10.03.2024 10:58:59 |
.NET/C# Roslyn kompilatora platforma
https://www.itsvse.com/thread-10740-1-1.html
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com