Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 3162|Odpowiedź: 1

[Komunikacja] Wprowadzenie i różnice między kompilacją JIT i AOT w .NET

[Skopiuj link]
Opublikowano 15.02.2024 17:17:46 | | | |
Terminologia

CLI: Common Language Infrastructure to specyfikacja w ramach frameworka .NET, która definiuje środowisko wykonawcze niezależne od języka i obejmujące różne architektury. Dzięki temu możemy rozwijać oprogramowanie w różnych językach wysokiego poziomu według specyfikacji, które może działać w różnych architekturach komputerowych bez żadnych modyfikacji

CLR: Środowisko uruchomienia w języku wspólnym. jest specyfikacją zapewniającą, że środowisko operacyjne jest niezależne od języka i międzyarchitektoniczne

CTS: Wspólny System Typów

CLS: Specyfikacja języka wspólnego

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

IL: Immediate Language Intermediate Language, Advanced Language Compiler kompiluje kod źródłowy zaawansowanych języków do języków pośrednich.

JIT: Just In Time Compiler kompiluje język pośredni do kodu maszynowego, który komputer rozumie, a następnie może być wykonywany

Kod źródłowy jest kompilowany do IL za pomocą kompilatora C# (np. programy, pliki dll, exe itp.). CLR ładuje te IL, kompiluje je do kodu maszynowego za pomocą JIT i jest ostatecznie wykonywany, jak pokazano na poniższym rysunku:



JIT (kompilator just-in-time) jest kompilowany w czasie

Kompilator just-in-time (JIT) jest częścią Common Language Runtime (CLR) w .NET i odpowiada za zarządzanie . .NET program, niezależnie od dowolnych . .NET programowania. Kompilatory specyficzne dla języka konwertują kod źródłowy na języki pośrednie. Ten pośredni język jest następnie konwertowany na kod maszynowy przez kompilator just-in-time (JIT). Ten kod maszynowy jest specyficzny dla środowiska komputerowego, w którym działa kompilator JIT.  Praca nad kompilatorem JIT: Kompilatory JIT muszą przyspieszyć wykonywanie kodu i zapewnić wsparcie dla wielu platform. Oto jak to działa:



Kompilator JIT konwertuje Microsoft Intermediate Language (MSIL) lub Common Intermediate Language (CIL) na kod maszynowy. Robi się to przed wykonaniem MSIL lub CIL. MSIL jest konwertowany na kod maszynowy w razie potrzeby, tzn. kompilator JIT kompiluje MSIL lub CIL w razie potrzeby, zamiast kompilować cały kod. Przechowuj skompilowany MSIL lub CIL, aby mógł być użyty do kolejnych wywołań w razie potrzeby.

Zalety JIT:

  • Może być kompilowany i generowany w czasie rzeczywistym zgodnie z aktualną sytuacją sprzętową
  • Optymalna sekwencja instrukcji maszynowych może być generowana zgodnie z aktualną operacją programu
  • Gdy program musi wspierać dynamiczne linkowanie, może używać wyłącznie metody kompilacji JIT
  • Kod można dostosować do rzeczywistej sytuacji pamięci w trakcie procesu, aby lepiej ją wykorzystać


Wady JIT:

  • Kompilacja wymaga zasobów środowiska wykonawczego, co powoduje zacinanie się procesu podczas wykonywania
  • Kompilacja zajmuje czas działania, a niektóre optymalizacje kompilacji kodu nie mogą być w pełni wspierane, dlatego konieczne jest zrównoważenie płynności i czasu
  • Przygotowanie kompilacji i identyfikacja często stosowanych metod jest czasochłonna, a początkowa kompilacja nie osiąga najwyższej wydajności


AOT (Ahead-of-time compiler) jest kompilowany z wyprzedzeniem

W informatyce wczesna kompilacja (kompilacja AOT) to proces kompilacji (zazwyczaj) języka programowania wysokiego poziomu do (zazwyczaj) języka niskopoziomowego przed uruchomieniem programu, zwykle w czasie budowania, aby zmniejszyć ilość pracy wymaganej w czasie działania.

Najczęściej nie jest to to samo, co łączenie języków programowania wysokiego poziomu (takich jak C czy C++) lub reprezentacji pośrednich, takich jak bajtcode Java lub . Kod NET Framework Common Intermediate Language (CIL) skompilowany tak, aby był natywny (zależny od systemu) związany z zachowaniem. kod maszynowy, dzięki któremu powstałe binarki mogą być wykonywane natywnie, podobnie jak standardowy natywny kompilator. W tym konkretnym środowisku często postrzega się go jako przeciwieństwo kompilacji just-in-time (JIT).

Kompilacja AOT odbywa się przed kompilacją lub instalacją programu, czyli wstępnie kompiluje skrypty lub bajtkody do kodu maszynowego i wykonuje je bezpośrednio, gdy jest to potrzebne. Może to poprawić szybkość uruchamiania programu i uniknąć opóźnień spowodowanych procesem kompilacji.

Zalety AOT:

  • Kompilacja przed uruchomieniem programu unika wydajności kompilacji i zużycia pamięci w czasie działania
  • Szczytowe wyniki można osiągnąć już na początku programu
  • Może znacząco przyspieszyć efektywność wykonywania programów


Wady AOT:

  • Kompilacja przed uruchomieniem programu zwiększa czas instalacji programu
  • Zapisywanie wstępnie skompilowanej zawartości zajmuje więcej pamięci
  • Poświęcanie spójności języków wysokiego poziomu


streszczenie

JIT: Wysoka przepustowość, bonus do wydajności w czasie działania, może działać szybciej i dynamicznie generować kod itd., ale uruchamia się stosunkowo wolno i wymaga określonego czasu oraz częstotliwości wywołań, aby uruchomić mechanizm warstwowania JIT
AOT: Niskie zużycie pamięci, szybka prędkość uruchamiania, możliwość statycznego powiązania runtime z końcowym programem bez czasu działania, ale nie ma bonusu do wydajności w czasie wykonywania i nie można go dodatkowo optymalizować zgodnie z biegiem programu



Odniesienie:

Logowanie do linku jest widoczne.
Logowanie do linku jest widoczne.
Logowanie do linku jest widoczne.
Logowanie do linku jest widoczne.
Logowanie do linku jest widoczne.
Logowanie do linku jest widoczne.
Logowanie do linku jest widoczne.





Poprzedni:.NET/C# Wysoka wydajność łączy wiele plików w jeden plik
Następny:.NET/C# Collection List, HashSet do określenia, czy dany element ma benchmark
 Ziemianin| Opublikowano 10.03.2024 10:58:59 |
.NET/C# Platforma kompilatora Roslyn
https://www.itsvse.com/thread-10740-1-1.html
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com