|
|
Opslået på 15/02/2024 17.17.46
|
|
|
|

Terminologi
CLI: Common Language Infrastructure er en specifikation under .NET-rammeværket, der definerer en sprog-agnostisk, tvær-arkitektur runtime. Derfor kan vi udvikle software i forskellige højniveausprog under specifikationen, som kan køre i forskellige computerarkitekturer uden ændringer
CLR: Common Language Runtime. er en specifikation, der sikrer, at driftsmiljøet er sproguafhængigt og tvær-arkitektonisk
CTS: Common Type System
CLS: Common Language Specification
FCL: Framework Class Library 架构类库,包含两部分: 基础类库 Base Class Library 和成品类库
IL: Immediate Language Intermediate Language, Advanced Language Compiler kompilerer kildekoden fra avancerede sprog til mellemliggende sprog.
JIT: Just In Time Compiler kompilerer et mellemliggende sprog til maskinkode, som en computer kan forstå, og som derefter kan køres
Kildekoden kompileres til IL af en C#-compiler (dvs. programmer, dll'er, exes osv.). CLR indlæser disse IL'er, kompilerer dem til maskinkode via JIT og eksekveres endelig, som vist i følgende figur:
JIT (Just-in-time compiler) kompileres løbende løbende
Just-in-time-kompilatoren (JIT) er en del af Common Language Runtime (CLR) i .NET og er ansvarlig for at administrere . .NET-program, uanset ethvert . .NET programmeringssprog. Sprogspecifikke compilere konverterer kildekode til mellemliggende sprog. Dette mellemliggende sprog konverteres derefter til maskinkode af en just-in-time (JIT) compiler. Denne maskinkode er specifik for det computermiljø, hvor JIT-kompilatoren kører. JIT-kompilatorarbejde: JIT-kompilatorer skal fremskynde kodeudførelsen og understøtte flere platforme. Sådan fungerer det:
JIT-kompilatoren konverterer Microsoft Intermediate Language (MSIL) eller Common Intermediate Language (CIL) til maskinkode. Dette gøres før udførelse af MSIL eller CIL. MSIL konverteres til maskinkode efter behov, dvs. JIT-kompilatoren kompilerer MSIL eller CIL efter behov i stedet for at kompilere hele koden. Gem den kompilerede MSIL eller CIL, så den kan bruges til efterfølgende kald, hvis det er nødvendigt.
JIT-fordele:
- Den kan kompileres og genereres i realtid i henhold til den aktuelle hardwaresituation
- Den optimale maskininstruktionssekvens kan genereres i henhold til den aktuelle programoperation
- Når et program skal understøtte dynamisk linking, kan det kun bruge JIT-kompileringsmetoden
- Koden kan justeres efter den faktiske hukommelsessituation i processen for bedre at udnytte hukommelsen
JIT Ulemper:
- Kompilering kræver ressourcerne fra runtime-runtime, hvilket får processen til at hakke under udførelsen
- Kompilering tager køretid, og nogle kodekompileringsoptimeringer kan ikke understøttes fuldt ud, så det er nødvendigt at balancere flydende og tidsmæssig kvalitet
- Forberedelse af kompilering og identifikation af ofte anvendte metoder er tidskrævende, og den indledende kompilering opnår ikke den højeste ydeevne
AOT (Ahead-of-time compiler) kompileres på forhånd
Inden for datalogi er tidlig kompilering (AOT-kompilering) handlingen med at kompilere et (normalt) højniveau-programmeringssprog til et (normalt) lavniveausprog, før et program eksekveres, som regel under byggetid, for at reducere den nødvendige indsats under kørsel.
For det meste er det ikke det samme som at kombinere højniveau programmeringssprog (såsom C eller C++) eller mellemrepræsentationer som Java-bytekode eller . NET Framework Common Intermediate Language (CIL) kode) kompileret til at være native (systemafhængig) adfærdsrelateret. maskinkode, så de resulterende binærfiler kan udføres native, ligesom en standard native compiler. Når det bruges i dette specifikke miljø, ses det ofte som det modsatte af just-in-time (JIT) kompilering.
AOT-kompilering sker før programmet kompileres eller installeres, det vil sige, det forudkompilerer scripts eller bytekoder til maskinkode og eksekverer dem direkte, når det er nødvendigt. Dette kan forbedre programmets opstartshastighed og undgå forsinkelser forårsaget af kompileringsprocessen.
AOT-fordele:
- Kompilering før programmet kører undgår kompileringsydelse og hukommelsesforbrug under kørsel
- Toppræstation kan opnås tidligt i programmet
- Det kan markant øge effektiviteten af programudførelsen
AOT Ulemper:
- Kompilering før programmet kører øger den tid, det tager at installere programmet
- At gemme forudkompileret indhold bruger mere hukommelse
- Ofring af konsistensen i højniveausprog
resumé
JIT: Høj gennemstrømning, ydeevnebonus under kørsel, kan køre hurtigere og kan dynamisk generere kode osv., men det er relativt langsomt at starte og kræver en vis tid og kaldefrekvens for at udløse JIT-lagmekanismen AOT: Lavt hukommelsesforbrug, hurtig opstartshastighed, kan direkte forbinde kørselstiden statisk til det endelige program uden kørselstid, men der er ingen ydelsesbonus under kørsel, og det kan ikke optimeres yderligere i forhold til, hvordan programmet kører
Henvisning:
Hyperlink-login er synlig.
Hyperlink-login er synlig.
Hyperlink-login er synlig.
Hyperlink-login er synlig.
Hyperlink-login er synlig.
Hyperlink-login er synlig.
Hyperlink-login er synlig.
|
Tidligere:.NET/C# Høj ydeevne samler flere filer til én filNæste:.NET/C# samlingsliste, HashSet for at afgøre, om et element har en benchmark
|