Zamonaviy backend — Sintaksis va unumdorlik yaxshilanishlari (2)

Zamonaviy backend — Sintaksis va unumdorlik yaxshilanishlari (2)

Bu [Modern Backend] kursining 1-qismi 8-sessiyasidagi ikkinchi ma’ruza — «Sintaksis va unumdorlikni yaxshilash (2)»ning nazariya va tamoyillar bo‘limidir.

Ushbu ma’ruzada Java 25 dagi Flexible Constructor Bodies’ni boshqaruvchi qat’iy qoidalar va ishga tushirish tartibi, shuningdek Compact Object Headers konfiguratsiyasi hamda Java 25 unumdorligini optimallashtirishga ko‘p qirrali yondashuv yoritiladi.

📌 Asosiy mavzular:

  • Konstruktorning birinchi operatoriga qo‘yilgan (super/this) cheklovlarning chegaralari va Flexible Constructors’ning paydo bo‘lishi

  • Prologue sohasining roli: superclass konstruktorini chaqirishdan oldin parametrlarni tekshirish va oldindan qayta ishlash mantiqini bir joyga jamlash

  • Prologue sohasi uchun qat’iy spetsifikatsiya qoidalari:

  • Ruxsat etiladi: parametrlarni tekshirish/istisno chiqarish, lokal o‘zgaruvchilar bilan amallar bajarish va obyektning o‘z instance field’lariga boshlang‘ich qiymatlarni berish

  • Taqiqlanadi: instance field’larni o‘qish, instance method’larni chaqirish, this havolasini tashqariga chiqarish va non-static inner class’larni yaratish

  • Merosxo‘rlik tuzilmalarida ishga tushirish tartibi bilan bog‘liq muammolar (superclass konstruktori ichida overridden method’ni chaqirish) hamda Prologue’dagi field initialization xatti-harakatidagi farqlar

  • Compact Object Headers’ni yoqish bayrog‘i (Compact Object Headers, JEP 519)-XX:+UseCompactObjectHeaders) va u haqiqatan ham qo‘llangan-qo‘llanmaganini tekshirish buyrug‘i

  • Java 25 unumdorligini yaxshilash chegaralari va tasniflari:

  • Vaqt o‘qi (ishga tushirish va warm-up vaqtini qisqartirish — AOT cache; bu mavzu keyinroq 3-qismda GraalVM bilan ko‘rib chiqiladi)

  • Xotira o‘qi (heap memory sarfini kamaytirish, GC chastotasi va STW pauzalarini qisqartirish hamda uzoq muddatli throughput’ni yaxshilash)

  • Backend muhandisi nuqtayi nazaridan unumdorlikdagi to‘siqlarni aniqlash mezonlarini belgilash (ishga tushirish vaqti va heap memory/GC yuklamasi o‘rtasidagi farq)

Til sintaksisining moslashuvchanligi va JVM darajasida xotirani sozlash tamoyillarini chuqur o‘zlashtirish.

Site footer