tgoop.com/flutter_learn_ir/713
Last Update:
🔸 هر زمان که نسخه بهینه شده پیش بینی اشتباهی انجام دهد به موردی برخورد میکند که نمیتواند آن را مدیریت کند، به سادگی اجرا را به نقطه تطبیق تابع غیر بهینه شده منتقل میکند و اجرا را در آنجا ادامه میدهد. و نسخه بهینه شده حذف میشود
دو روش وجود دارد که VM از طریق آنها فرضهای گمانهزنی انجام شده توسط کامپایلر را محافظت میکند:
روش اول: چکهای درون خطی (مانند دستورالعملهای IL CheckSmi، CheckClass) که بررسی میکنند آیا فرض در محل استفاده که کامپایلر این فرض را انجام داده است برقرار است یا خیر
روش دوم: یک محافظ عمومی وجود دارد که در زمان اجرا مواردی که باعث نقض کد بهینه شده میشود را حذف کند.
برای مثال ممکن است کامپایلر بهینه ساز مشاهده کند کلاسی هیچ ارث بری از آن انجام نشده است با این حال زمان باگذاری پویا یا نهایی سازی کلاس اگر یک زیر کلاس از آن پیدا شود فرض باطل میشود
⚜️اولین مرجع فارسی فلاتر @flutter_learn_ir
BY آموزش برنامه نویسی فلاتر Flutter
Share with your friend now:
tgoop.com/flutter_learn_ir/713