بهبود جمعآوری زباله G1 همچنین هزینههای سربار کامپایلر بهینهسازی C2 JDK را کاهش میدهد و از استقرار جاوا مبتنی بر ابر بهره میبرد.
تغییر در جمعآوری زباله G1 جاوا، سربار حافظه و پردازش را کاهش میدهد و اجرای کامپایلر JIT بهینهسازی C2 جاوا را تسریع میبخشد، و بر اساس پیشنهادی در جامعه جاوا، به بهرهبرداری از استقرار ابری کمک میکند.
>
پیشنهاد OpenJDK اجرای موانع G1 را که اطلاعات مربوط به دسترسیهای حافظه برنامه را ضبط میکند، سادهتر میکند. در این پیشنهاد آمده است که گسترش آنها از اوایل خط لوله تدوین JIT C2 به بعد منتقل می شود.
اساس این پیشنهاد، محبوبیت روزافزون استقرارهای جاوا مبتنی بر ابر است، که منجر به تمرکز بیشتر بر کاهش سربار کلی JVM شده است. اهداف این طرح عبارتند از کاهش زمان اجرای C2 در هنگام استفاده از کلکتور G1، قابل درک کردن موانع G1 برای توسعه دهندگان HotSpot که درک عمیقی از C2 ندارند، و تضمین این که C2 تغییرات ثابتی را در مورد ترتیب نسبی دسترسی ها به حافظه، نقاط امن و نقاط امن حفظ می کند. موانع هدف دیگر حفظ کیفیت کدهای تولید شده توسط C2 از نظر سرعت و اندازه است.
این پیشنهاد بیان میکند که هدف پیشنهاد حفظ گسترش مانع اولیه فعلی G1 به عنوان یک حالت قدیمی نیست، و اضافه میکند که تغییر به گسترش مانع دیرهنگام باید کاملاً شفاف باشد، بنابراین حالت قدیمی غیر ضروری است. این پیشنهاد در اواسط دسامبر ۲۰۲۳ ایجاد شد و در ۹ آوریل ۲۰۲۴ به روز شد.
در توضیح انگیزه این طرح، این پیشنهاد به محبوبیت روزافزون استقرارهای ابری و سربار قابل توجهی که توسط کامپایلرهای بهینهسازی JIT مانند C2 متحمل شده است، اشاره میکند. آزمایشهای اولیه نشان میدهد که گسترش موانع G1 در مراحل اولیه، سربار C2 را بسته به کاربرد، حدود ۱۰ تا ۲۰ درصد افزایش میدهد. در این پیشنهاد آمده است که کاهش این سربار کلیدی است برای اینکه پلتفرم جاوا برای فضای ابری مناسب تر باشد.
یکی دیگر از عوامل اصلی سربار JVM، زباله گرد (GC) است. جداسازی ابزاردقیق مانع G1 از قطعات داخلی C2 به توسعه دهندگان GC این امکان را میدهد تا با استفاده از بهبودهای الگوریتمی و بهینهسازیهای میکرو سطح پایین، هزینههای سربار G1 را بیشتر بهینه کرده و کاهش دهند.
در نهایت، پیشنهاد اشاره میکند که دامنه C2 برای بهینهسازی کد مانع محدود است و اگر جزئیات پیادهسازی مانع از C2 پنهان شده و فقط در انتهای خط لوله کامپایل گسترش یابد، میتوان کدی با کیفیت مشابه تولید کرد. بنابراین، نویسندگان پیشنهاد میکنند که موانع G1 را تا حد ممکن دیرتر در خط لوله تدوین C2 گسترش دهند.
پست های مرتبط
اصلاح جاوا G1 کامپایل JIT را سرعت می بخشد
اصلاح جاوا G1 کامپایل JIT را سرعت می بخشد
اصلاح جاوا G1 کامپایل JIT را سرعت می بخشد