|
|
Közzétéve 2024. 02. 15. 17:17:46
|
|
|
|

Terminológia
CLI: A Common Language Infrastructure egy specifikáció a .NET keretrendszerben, amely nyelvtől független, architektúrák közötti futásidőt határoz meg. Ezért különböző felsőszintű nyelveken fejleszthetünk szoftvereket a specifikáció alatt, amelyek módosítás nélkül különböző számítógépes architektúrákban futhatnak
CLR: Közös nyelvű futásidő. egy specifikáció, amely biztosítja, hogy az operációs környezet nyelvfüggetlen és architektúrákon átíveljen
CTS: Általános Típus Rendszer
CLS: Közös nyelvi specifikáció
FCL: Framework Class Library 架构类库,包含两部分: 基础类库 Base Class Library 和成品类库
IL: Azonnali nyelv Intermediate nyelv, Haladó nyelvfordító a haladó nyelvek forráskódját köztes nyelvekre fordítja.
JIT: Just In Time Compiler egy köztes nyelvet fordít gépi kódba, amit a számítógép megért, és ezt aztán futtatni
A forráskódot C# fordító (azaz programok, dll-ek, ex-ek stb.) fordítja IL-be (például programok, dll-ek, ex-ek stb.). A CLR betölti ezeket az IL-eket, JIT-en keresztül gépi kódba fordítja őket, és végül végrehajtják, ahogy az alábbi ábrán látható:
JIT (Just-in-time fordító) menet közben készül lefordítani
A just-in-time fordító (JIT) a .NET Common Language Runtime (CLR) része, és felelős a . .NET program, függetlenül attól, hogy . .NET programozási nyelv. A nyelvspecifikus fordítók forráskódot köztes nyelvekre alakítják át. Ezt a köztes nyelvet egy just-in-time (JIT) fordító gépi kóddá alakítja. Ez a gépi kód kifejezetten arra a számítógépkörnyezetre vonatkozik, ahol a JIT fordító fut. JIT fordítói munka: A JIT fordítóknak fel kell gyorsítaniuk a kód végrehajtását, és több platformot is támogatniuk kell. Így működik:
A JIT fordító a Microsoft Intermediate Language-t (MSIL) vagy a Common Intermediate Language-t (CIL) gépi kóddá alakítja. Ezt a MSIL vagy CIL végrehajtása előtt kell megtenni. A MSIL-t szükség szerint gépi kódra alakítják át, azaz a JIT fordító a szükséges szerint fordítja a MSIL-t vagy CIL-t, nem pedig az egész kódot fordítaná. Tárolja a lefordított MSIL vagy CIL rendszert, hogy szükség esetén a következő hívásokhoz is használható legyen.
JIT előnyök:
- Valós időben fordítható és generálható a jelenlegi hardverhelyzet szerint
- Az optimális gépi utasítássorozat a jelenlegi programművelet alapján generálható
- Ha egy programnak dinamikus összekapcsolást kell támogatnia, csak a JIT fordítási módszert használhatja
- A kód a memória tényleges helyzete szerint állítható a folyamat során, hogy jobban kihasználhassák a memóriát
JIT hátrányok:
- A fordításhoz a futási idő erőforrásai szükségesek, ami a folyamat akadását okozza a végrehajtáskor
- A fordítás futási időt vesz igénybe, és néhány kódfordítási optimalizálás nem teljesen támogatható, ezért szükséges egyensúlyt teremteni a folyékonyság és az idő között
- A fordítás előkészítése és a gyakran használt módszerek azonosítása időigényes, és az első fordítás nem éri el a legmagasabb teljesítményt
Az AOT (Afore-of-time compiler) előre van lefordítva.
A számítástechnikában a korai fordítás (AOT fordítás) azt jelenti, hogy egy (többnyire) magas szintű programozási nyelvet fordítanak (általában alacsonyabb szintű nyelvre) egy program végrehajtása előtt, általában az építés idején, hogy csökkentsék a futásidőben elvégzett erőfeszítést.
Legtöbbször ez nem ugyanaz, mint a magas szintű programozási nyelvek (például C vagy C++) vagy köztes reprezentációk, mint például a Java bytecode vagy . NET Framework Common Intermediate Language (CIL) kódot fordítanak le natív (rendszerfüggő) viselkedéshez köthetőnek. gépi kódot használ, hogy a kapott binárisok natív módon lehessen végrehajtani, akárcsak egy szabványos natív fordító. Ebben a konkrét környezetben gyakran az éppen időben (JIT) fordítás ellentéteként értelmezik.
Az AOT fordítás még azelőtt történik, hogy a program lefordításra vagy telepítésre kerülne, vagyis előre fordítja a szkripteket vagy bájtkódokat gépi kódba, és közvetlenül végrehajtja őket, amikor szükséges. Ez javíthatja a programok indítási sebességét, és elkerülheti a fordítási folyamat által okozott késéseket.
AOT előnyök:
- A program futtatása előtt történő fordítás elkerüli a fordítási teljesítményt és a memóriafogyasztást futásidőben
- A csúcsteljesítmény a program elején érhető el
- Ez jelentősen felgyorsíthatja a programvégrehajtás hatékonyságát
AOT hátrányok:
- A program futtatása előtt történő fordítás megnöveli a program telepítésének idejét
- Az előre fordított tartalom mentése több memóriát foglal el
- A magas szintű nyelvek következetességének feláldozása
összefoglalás
JIT: Nagy áteresztőképesség, futási idő teljesítménybónusz, gyorsabban futhat, dinamikusan generálhat kódot stb., de viszonylag lassú az indítás, és bizonyos idő, hívási frekvencia szükséges a JIT rétegezési mechanizmus aktiválásához AOT: Alacsony memóriahasználat, gyors indítási sebesség közvetlenül statikus módon összekapcsolhatja a futást a végső programhoz futás nélkül, de nincs futási teljesítménybónusz, és a program futtatása szerint nem optimalizálható tovább
Utalás:
A hiperlink bejelentkezés látható.
A hiperlink bejelentkezés látható.
A hiperlink bejelentkezés látható.
A hiperlink bejelentkezés látható.
A hiperlink bejelentkezés látható.
A hiperlink bejelentkezés látható.
A hiperlink bejelentkezés látható.
|
Előző:.NET/C# A nagy teljesítmény több fájlt egyesít egyetlen fájlbaKövetkező:.NET/C# gyűjteménylista, HashSet annak meghatározására, hogy egy elemnek van-e benchmark
|