|
|
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
|