Aksariyat .NET ish yuklari uchun standart tajriba JIT kompilyatoridir, lekin .NET oldindan (AOT) kompilyatsiya qilishning ikkita shaklini taklif qiladi:
Ba’zi stsenariylar 100% AOT kompilyatsiyasini talab qiladi. Bunga misol iOS .
Boshqa stsenariylarda ilova kodlarining aksariyati AOT-kompilyatsiya qilinadi, ammo ba’zilari JIT-kompilyatsiya qilinadi. Ba’zi kod naqshlari AOTga mos kelmaydi (masalan, generiklar). AOT kompilyatsiyasining ushbu shakliga misol sifatida chop etishga tayyor variantni keltirish mumkin. AOT ning ushbu shakli AOT ning afzalliklarini kamchiliklarsiz taqdim etadi.
Avtomatik xotirani boshqarish
Axlat yigʻuvchi (GC) ilovalar uchun xotirani ajratish va chiqarishni boshqaradi . Sizning kodingiz har safar yangi ob’ektni yaratganida, CLR boshqariladigan uymadan ob’ekt uchun xotira ajratadi . Boshqariladigan uyada manzil maydoni mavjud ekan, ish vaqti yangi ob’ektlar uchun joy ajratishda davom etadi. Etarli boʻsh manzil maydoni qolmasa, GC boshqariladigan toʻplamdagi ilova tomonidan foydalanilmayotgan ob’ektlarni tekshiradi. Keyin u xotirani tiklaydi.
GC xotira xavfsizligini ta’minlashga yordam beruvchi CLR xizmatlaridan biridir . Agar dastur faqat ajratilgan xotiraga kirsa, xotira xavfsiz hisoblanadi. Masalan, ish vaqti ilovaning massiv doirasidan tashqarida ajratilmagan xotiraga kirmasligini ta’minlaydi.
Joylashtirish modellari
.NET ilovalari ikki xil rejimda nashr etilishi mumkin:
Ilovani mustaqil ravishda nashr qilish .NET ish vaqti va kutubxonalarini , ilova va uning bogʻliqliklarini oʻz ichiga olgan bajariladigan faylni ishlab chiqaradi . Ilova foydalanuvchilari uni .NET ish vaqti oʻrnatilmagan mashinada ishga tushirishlari mumkin. Oʻz ichiga olgan ilovalar platformaga xos boʻlib, ular ixtiyoriy ravishda AOT kompilyatsiyasi shaklida chop etilishi mumkin .
Ilovani ramkaga bogʻliq sifatida nashr qilish faqat ilovaning oʻzi va uning bogʻliqliklarini oʻz ichiga olgan bajariladigan fayl va ikkilik fayllarni ( .dll fayllari) hosil qiladi. Ilova foydalanuvchilari .NET ish vaqtini alohida oʻrnatishlari kerak . Bajariladigan fayl platformaga xosdir, lekin ramkaga bogʻliq ilovalarning .dll fayllari oʻzaro platformalardir.
Ish vaqtining turli versiyalariga moʻljallangan ramkaga bogʻliq ilovalarni ishga tushirish uchun ish vaqtining bir nechta versiyalarini yonma-yon oʻrnatishingiz mumkin. Qoʻshimcha ma’lumot olish uchun Maqsadli ramkalar ga qarang .
Bajariladigan fayllar ish vaqti identifikatori (RID) bilan belgilagan maxsus maqsadli platformalar uchun ishlab chiqariladi .
Qoʻshimcha ma’lumot olish uchun .NET ilovalarini nashr qilish haqida umumiy ma’lumot va .NET va Docker ga kirishga qarang .