Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 3162|Svar: 1

[Kommunikation] Introduktion og forskel mellem JIT- og AOT-kompilering i .NET

[Kopier link]
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 fil
Næste:.NET/C# samlingsliste, HashSet for at afgøre, om et element har en benchmark
 Udlejer| Opslået på 10/03/2024 10.58.59 |
.NET/C# Roslyn compilerplatform
https://www.itsvse.com/thread-10740-1-1.html
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com