|
|
Yayınlandı 15.02.2024 17:17:46
|
|
|
|

Terminoloji
CLI: Ortak Dil Altyapısı, .NET çerçevesi altında dil bağımsız, çapraz mimari bir çalışma zamanını tanımlayan bir spesifikasyondur. Bu nedenle, farklı bilgisayar mimarilerinde değişiklik yapmadan çalışabilen çeşitli yüksek düzey dillerde yazılım geliştirebiliriz
CLR: Ortak Dil Çalışma Zamanı. işletim ortamının dil bağımsız ve çapraz mimari olmasını sağlayan bir spesifikasyondur
CTS: Ortak Tip Sistemi
CLS: Ortak Dil Spesifikasyonu
FCL: Framework Class Library 架构类库,包含两部分: 基础类库 Base Class Library 和成品类库
IL: Immediate Language Intermediate Language, Advanced Language Compiler, gelişmiş dillerin kaynak kodunu ara dillere derler.
JIT: Just In Time Compiler, bir ara dili bilgisayarın anlayabileceği makine koduna derler ve ardından çalıştırılabilir
Kaynak Kodu, C# Derleyici tarafından IL'ye derlenir (yani programlar, dll'ler, ex'ler vb.). CLR, bu IL'leri yükler, JIT aracılığıyla makine koduna derler ve aşağıdaki şekilde gösterildiği gibi nihayet çalıştırılır:
JIT (Just-in-time derleyici) anında derlenir
Tam zamanında derleyici (JIT), .NET'teki Ortak Dil Çalışma Zamanının (CLR) bir parçasıdır ve . .NET programı, herhangi bir . .NET programlama dili. Dile özgü derleyiciler, kaynak kodunu ara dillere dönüştürür. Bu ara dil, daha sonra tam zamanlı (JIT) derleyici tarafından makine koduna dönüştürülür. Bu makine kodu, JIT derleyicisinin çalıştığı bilgisayar ortamına özgüdür. JIT Derleyici Çalışması: JIT derleyicilerinin kod yürütmeyi hızlandırması ve birden fazla platform için destek sağlaması gerekir. İşte nasıl çalışıyor:
JIT derleyicisi, Microsoft Ara Dili (MSIL) veya Ortak Ara Dili (CIL) makine koduna dönüştürür. Bu, MSIL veya CIL yapılmadan önce yapılır. MSIL, gerektiğinde makine koduna dönüştürülür; yani JIT derleyicisi tüm kodu derlemek yerine MSIL veya CIL derler. Derlenmiş MSIL veya CIL'i depolayın ki gerekirse sonraki çağrılar için kullanılabilir.
JIT Artıları:
- Mevcut donanım durumuna göre gerçek zamanlı derlenebilir ve oluşturulabilir
- Optimal makine komut dizisi mevcut program işlemine göre üretilebilir
- Bir program dinamik bağlantıyı desteklemesi gerektiğinde yalnızca JIT derleme yöntemini kullanabilir
- Kod, hafızanın daha iyi kullanılmasını sağlamak için süreçteki gerçek bellek durumuna göre ayarlanabilir
JIT Eksileri:
- Derleme, çalışma zamanının kaynaklarını gerektirir, bu da yürütülürken sürecin sökkelemesine neden olur
- Derleme çalışma süresi alır ve bazı kod derleme optimizasyonları tam olarak desteklenemez, bu yüzden akıcılık ve zamanı dengelemek gerekir
- Derleme hazırlığı ve sık kullanılan yöntemlerin tanımlanması zaman alıcıdır ve ilk derleme en yüksek performansı elde etmez
AOT (Önceden derleyici) önceden derlenir
Bilgisayar bilimlerinde, erken derleme (AOT derleme), genellikle yüksek seviyeli bir programlama dilini (genellikle) düşük seviyeli bir dile derlemenin ve programın yürütülmesinden önce, genellikle derleme zamanında, çalışma zamanında yapılması gereken çabayı azaltmak için yapılan eylemdir.
Çoğu zaman, yüksek seviyeli programlama dillerini (örneğin C veya C++) veya Java bayt kodu veya . gibi ara temsilleri birleştirmekle aynı değildir. NET Framework Common Intermediate Language (CIL) kodu) yerel (sistem bağımlı) davranışla ilgili olarak derlenmiş bir koddur. makine kodu, böylece ortaya çıkan ikili dosyalar standart bir yerel derleyici gibi yerel olarak çalıştırılabilir. Bu özel ortamda kullanıldığında, genellikle tam zamanlı (JIT) derlemenin tam zıtlığı olarak görülür.
AOT derleme, program derlenmeden veya kurulmadan önce gerçekleşir; yani script veya baytkodları makine koduna önceden derler ve gerektiğinde doğrudan çalıştırır. Bu, program başlatma hızını artırabilir ve derleme sürecinden kaynaklanan gecikmeleri önleyebilir.
AOT Artıları:
- Program çalışmadan önce derleme, çalışma zamanında derleme performansını ve bellek tüketimini engeller
- Programın erken aşamasında zirve performans elde edilebilir
- Program yürütme verimliliğini önemli ölçüde hızlandırabilir
AOT Eksileri:
- Program çalışmadan önce derlemek, programın kurulum süresini artırır
- Önceden derlenmiş içeriği kaydetmek daha fazla bellek kaplar
- Yüksek seviyeli dillerin tutarlılığından ödün vermek
özet
JIT: Yüksek verimlilik, çalışma zamanı performans bonusu, daha hızlı çalışabilir ve dinamik olarak kod üretebilir vb., ancak başlatması nispeten yavaştır ve JIT katmanlama mekanizmasını tetiklemek için belirli bir zaman ve çağrı frekansı gerektirir AOT: Düşük bellek kullanımı, hızlı başlatma hızı, çalışma zamanını doğrudan statik olarak nihai programa bağlayabiliyor ama çalışma zamanı performans bonusu yoktur ve programın çalışmasına göre daha fazla optimize edilemez
Referans:
Bağlantı girişi görünür.
Bağlantı girişi görünür.
Bağlantı girişi görünür.
Bağlantı girişi görünür.
Bağlantı girişi görünür.
Bağlantı girişi görünür.
Bağlantı girişi görünür.
|
Önceki:.NET/C# Yüksek performans, birden fazla dosyayı tek bir dosyaya birleştirirÖnümüzdeki:.NET/C# koleksiyon listesi, bir elemanın bir kıyaslama yapıp olmadığını belirlemek için HashSet
|