Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 3162|Svare: 1

[Kommunikasjon] Introduksjon og forskjell mellom JIT- og AOT-kompilering i .NET

[Kopier lenke]
Publisert på 15.02.2024 17:17:46 | | | |
Terminologi

CLI: Common Language Infrastructure er en spesifikasjon under .NET-rammeverket som definerer en språk-agnostisk, tverr-arkitektur kjøretid. Derfor kan vi utvikle programvare i ulike høynivåspråk under spesifikasjonen som kan kjøre i ulike datamaskinarkitekturer uten endringer

CLR: Common Language Runtime. er en spesifikasjon som sikrer at driftsmiljøet er språkuavhengig og tverr-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 til avanserte språk til mellomliggende språk.

JIT: Just In Time Compiler kompilerer et mellomliggende språk til maskinkode som en datamaskin kan forstå, som deretter kan kjøres

Kildekoden kompileres til IL av C#-kompilatoren (dvs. programmer, dll-filer, ex-filer osv.). CLR laster inn disse IL-ene, kompilerer dem til maskinkode via JIT, og blir til slutt utført, som vist i følgende figur:



JIT (Just-in-time-kompilator) kompileres underveis

Just-in-time-kompilatoren (JIT) er en del av Common Language Runtime (CLR) i .NET og har ansvar for å administrere . .NET-program, uavhengig av . .NET programmeringsspråk. Språkspesifikke kompilatorer konverterer kildekode til mellomliggende språk. Dette mellomliggende språket konverteres deretter til maskinkode av en just-in-time (JIT) kompilator. Denne maskinkoden er spesifikk for datamiljøet der JIT-kompilatoren kjører.  JIT-kompilatorarbeid: JIT-kompilatorer må øke hastigheten på kodeutførelsen og gi støtte for flere plattformer. Slik fungerer det:



JIT-kompilatoren konverterer Microsoft Intermediate Language (MSIL) eller Common Intermediate Language (CIL) til maskinkode. Dette gjøres før man utfører MSIL eller CIL. MSIL konverteres til maskinkode etter behov, det vil si at JIT-kompilatoren kompilerer MSIL eller CIL etter behov, i stedet for å kompilere hele koden. Lagre den kompilerte MSIL eller CIL slik at den kan brukes til påfølgende samtaler om nødvendig.

JIT-fordeler:

  • Den kan kompileres og genereres i sanntid i henhold til dagens maskinvaresituasjon
  • Den optimale maskininstruksjonssekvensen kan genereres i henhold til den nåværende programoperasjonen
  • Når et program trenger å støtte dynamisk lenking, kan det bare bruke JIT-kompileringsmetoden
  • Koden kan justeres etter den faktiske situasjonen til minnet i prosessen for å utnytte minnet bedre


JIT-ulemper:

  • Kompilering krever ressursene til kjøretidskjøringen, noe som gjør at prosessen hakker under kjøring
  • Kompilering tar kjøretid, og noen kodekompilasjonsoptimaliseringer kan ikke støttes fullt ut, så det er nødvendig å balansere flyt og tid
  • Forberedelse av kompilering og identifisering av ofte brukte metoder er tidkrevende, og den første kompileringen oppnår ikke den høyeste ytelsen


AOT (Ahead-of-time compiler) kompileres på forhånd

Innen informatikk er tidlig kompilering (AOT-kompilering) handlingen med å kompilere et (vanligvis) høynivå programmeringsspråk til et (vanligvis) lavnivåspråk før et program kjøres, vanligvis under byggetid, for å redusere mengden arbeid som må utføres under kjøring.

Som oftest er det ikke det samme som å kombinere høynivå programmeringsspråk (som C eller C++) eller mellomrepresentasjoner som Java-bytekode eller . NET Framework Common Intermediate Language (CIL)-kode) kompilert for å være native (systemavhengig) atferdsrelatert. maskinkode slik at de resulterende binærfilene kan kjøres nativt, akkurat som en standard native kompilator. Når det brukes i dette spesifikke miljøet, blir det ofte sett på som det motsatte av just-in-time (JIT)-kompilering.

AOT-kompilering skjer før programmet kompileres eller installeres, det vil si at det forhåndskompilerer skript eller bytekoder til maskinkode og kjører dem direkte ved behov. Dette kan forbedre oppstartshastigheten på programmet og unngå forsinkelser forårsaket av kompileringsprosessen.

AOT-fordeler:

  • Kompilering før programmet kjører unngår kompilasjonsytelse og minneforbruk under kjøring
  • Toppprestasjoner kan oppnås tidlig i programmet
  • Det kan betydelig øke effektiviteten i programutførelsen


AOT-ulemper:

  • Kompilering før programmet kjører øker tiden det tar å installere programmet
  • Å lagre forhåndskompilert innhold tar mer minne
  • Ofring av konsistensen til høynivåspråk


sammendrag

JIT: Høy gjennomstrømning, ytelsesbonus under kjøring, kan kjøre raskere, og kan generere kode dynamisk, osv., men det er relativt tregt å starte og krever en viss tid og samtalefrekvens for å utløse JIT-lagdelingsmekanismen
AOT: Lavt minnebruk, rask oppstartshastighet, kan koble kjøretiden statisk til det endelige programmet uten kjøretid, men det er ingen ytelsesbonus under kjøring, og det kan ikke optimaliseres videre i henhold til programmets kjøring



Referanse:

Innloggingen med hyperkoblingen er synlig.
Innloggingen med hyperkoblingen er synlig.
Innloggingen med hyperkoblingen er synlig.
Innloggingen med hyperkoblingen er synlig.
Innloggingen med hyperkoblingen er synlig.
Innloggingen med hyperkoblingen er synlig.
Innloggingen med hyperkoblingen er synlig.





Foregående:.NET/C# Høy ytelse slår sammen flere filer til én fil
Neste:.NET/C# samlingsliste, HashSet for å avgjøre om et element har en benchmark
 Vert| Publisert på 10.03.2024 10:58:59 |
.NET/C# Roslyn-kompilatorplattform
https://www.itsvse.com/thread-10740-1-1.html
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com