Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 3162|Odpoveď: 1

[Komunikácia] Úvod a rozdiel medzi kompiláciou JIT a AOT v .NET

[Kopírovať odkaz]
Zverejnené 15. 2. 2024 17:17:46 | | | |
Terminológia

CLI: Common Language Infrastructure je špecifikácia v rámci .NET frameworku, ktorá definuje jazykovo nezávislé runtime naprieč architektúrami. Preto môžeme vyvíjať softvér v rôznych vysokoúrovňových jazykoch podľa špecifikácie, ktorý môže bežať v rôznych počítačových architektúrach bez úprav

CLR: Common Language Runtime. je špecifikácia, ktorá zabezpečuje, že operačné prostredie je jazykovo nezávislé a medziarchitektonické

CTS: Spoločný typový systém

CLS: Špecifikácia spoločného jazyka

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

IL: Immediate Language Intermediate Language, Advanced Language Compiler kompiluje zdrojový kód pokročilých jazykov do stredne pokročilých jazykov.

JIT: Just In Time Compiler kompiluje medzijazyk do strojového kódu, ktorému počítač rozumie, a ktorý sa potom môže spustiť

Zdrojový kód sa kompiluje do IL pomocou C# kompilátora (t. j. programy, dll, exe súbory a pod.). CLR načíta tieto IL, skompiluje ich do strojového kódu pomocou JIT a nakoniec sa spustí, ako je znázornené na nasledujúcom obrázku:



JIT (just-in-time kompilátor) sa kompiluje za behu

Just-in-time kompilátor (JIT) je súčasťou Common Language Runtime (CLR) v .NET a zodpovedá za správu . .NET program, bez ohľadu na akékoľvek . Programovací jazyk .NET. Jazykovo špecifické kompilátory konvertujú zdrojový kód do medzijazykov. Tento medzijazyk je potom prevedený do strojového kódu pomocou just-in-time (JIT) kompilátora. Tento strojový kód je špecifický pre počítačové prostredie, v ktorom JIT kompilátor beží.  Práca s JIT kompilátormi: JIT kompilátory musia zrýchliť vykonávanie kódu a poskytovať podporu pre viacero platforiem. Takto to funguje:



Kompilátor JIT konvertuje Microsoft Intermediate Language (MSIL) alebo Common Intermediate Language (CIL) do strojového kódu. Toto sa vykonáva pred vykonaním MSIL alebo CIL. MSIL sa konvertuje do strojového kódu podľa potreby, t. j. JIT kompilátor kompiluje MSIL alebo CIL podľa potreby, namiesto kompilácie celého kódu. Ukladajte skompilovaný MSIL alebo CIL, aby mohol byť použitý pri ďalších volaniach, ak bude potrebný.

Výhody JIT:

  • Môže byť skompilovaný a generovaný v reálnom čase podľa aktuálnej hardvérovej situácie
  • Optimálna sekvencia strojových inštrukcií môže byť generovaná podľa aktuálnej prevádzky programu
  • Keď program potrebuje podporovať dynamické prepojenie, môže použiť iba metódu kompilácie JIT
  • Kód je možné upraviť podľa aktuálnej situácie pamäte v procese, aby sa pamäť lepšie využila


Nevýhody JIT:

  • Kompilácia vyžaduje zdroje runtime runtime, čo spôsobuje trhanie procesu pri vykonávaní
  • Kompilácia zaberá bežný čas a niektoré optimalizácie kompilácie kódu nie je možné plne podporiť, preto je potrebné vyvážiť plynulosť a čas
  • Príprava kompilácie a identifikácia často používaných metód je časovo náročná a počiatočná kompilácia nedosahuje najvyšší výkon


AOT (Ahead-of-time kompilátor) sa kompiluje vopred

V informatike je skorá kompilácia (AOT kompilácia) akt kompilácie (zvyčajne) vysokoúrovňového programovacieho jazyka do (zvyčajne) nízkoúrovňového jazyka pred spustením programu, zvyčajne počas zostavovania, aby sa znížila náročnosť potrebná na beh.

Väčšinou to nie je to to isté ako kombinácia vysokoúrovňových programovacích jazykov (ako C alebo C++) alebo medzistupňových reprezentácií, ako je Java bajtkód alebo . NET Framework Common Intermediate Language (CIL) kód) skompilovaný tak, aby bol natívne (systémovo závislý) súvisiaci so správaním. strojový kód, aby výsledné binárky mohli byť vykonávané natívne, rovnako ako štandardný natívny kompilátor. Pri použití v tomto špecifickom prostredí sa často považuje za opak just-in-time (JIT) kompilácie.

Kompilácia AOT prebieha ešte pred kompiláciou alebo inštaláciou programu, teda predkompiluje skripty alebo bajtkódy do strojového kódu a vykoná ich priamo, keď je to potrebné. To môže zlepšiť rýchlosť štartu programu a vyhnúť sa oneskoreniam spôsobeným procesom kompilácie.

Výhody AOT:

  • Kompilácia pred spustením programu zabraňuje výkonu kompilácie a spotrebe pamäte počas behu
  • Maximálny výkon je možné dosiahnuť už na začiatku programu
  • Môže výrazne zrýchliť efektivitu vykonávania programov


Nevýhody AOT:

  • Kompilácia pred spustením programu predlžuje čas potrebný na inštaláciu programu
  • Ukladanie predkompilovaného obsahu zaberá viac pamäte
  • Obetovanie konzistencie vysokoúrovňových jazykov


súhrn

JIT: Vysoká priepustnosť, bonus k výkonu za behu, môže bežať rýchlejšie a dynamicky generovať kód atď., ale je relatívne pomalý na spustenie a vyžaduje určitý čas a frekvenciu volaní na spustenie mechanizmu vrstvenia JIT
AOT: Nízke využitie pamäte, rýchla rýchlosť štartu, umožňuje priamo staticky prepojiť runtime s finálnym programom bez runtime, ale nie je tam žiadny bonus k výkonnosti za behu a nie je možné to ďalej optimalizovať podľa behu programu



Referencia:

Prihlásenie na hypertextový odkaz je viditeľné.
Prihlásenie na hypertextový odkaz je viditeľné.
Prihlásenie na hypertextový odkaz je viditeľné.
Prihlásenie na hypertextový odkaz je viditeľné.
Prihlásenie na hypertextový odkaz je viditeľné.
Prihlásenie na hypertextový odkaz je viditeľné.
Prihlásenie na hypertextový odkaz je viditeľné.





Predchádzajúci:.NET/C# Vysoký výkon spája viacero súborov do jedného súboru
Budúci:.NET/C# kolekcia Zoznam, HashSet na určenie, či má prvok benchmark
 Prenajímateľ| Zverejnené 10. 3. 2024 10:58:59 |
.NET/C# Roslyn kompilátorová platforma
https://www.itsvse.com/thread-10740-1-1.html
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com