|
Faktoringning umumiy subekspressiyalarining yuqori narxi
|
bet | 6/10 | Sana | 12.01.2024 | Hajmi | 35,2 Kb. | | #135582 |
Bog'liq 5-amaliy mashgulotFaktoringning umumiy subekspressiyalarining yuqori narxi
Ro'yxatdan o'tish mashinalarida keng tarqalgan subekspressiya (bir xil natija qiymatiga ega bo'lgan bir necha marta ishlatiladigan subekspressiya) faqat bir marta baholanishi mumkin va uning natijasi tezkor registrda saqlanadi. Keyingi qayta ishlatishda vaqt va kod narxi yo'q, faqat ro'yxatga olish ma'lumotnomasi mavjud. Ushbu optimallashtirish oddiy ifodalarni (masalan, X o'zgaruvchisini yoki P ko'rsatkichini yuklash kabi) va unchalik keng bo'lmagan murakkab ifodalarni tezlashtiradi.
Stek mashinalaridan farqli o'laroq, natijalarni ikki usulning birida saqlash mumkin. Birinchidan, natijalar xotirada vaqtinchalik o'zgaruvchi yordamida saqlanishi mumkin. Ma'lumotni saqlash va undan keyin qo'shimcha ko'rsatmalar va ma'lumotlarni keshlashning qo'shimcha tsikllari talab qilinadi. Buni amalga oshirish faqat subekspressiyani baholash xotiradan olishdan ko'ra ko'proq vaqt sarf qilsa foyda keltiradi, bu deyarli har doim stek protsessorlarida uchraydi. Bu hech qachon oddiy o'zgaruvchilar va ko'rsatgichlarni olish uchun bajarilmasligi kerak, chunki ular har bir kirish uchun ma'lumot keshlash tsikli uchun bir xil narxga ega . X + 1 kabi iboralar uchun bu juda ozgina ahamiyatga ega . Ushbu sodda iboralar katetiv bo'lmagan tillarda yozilgan dasturlarda keraksiz, optimallashtiriladigan ifodalarning aksariyatini tashkil etadi . Optimallashtiruvchi kompilyator faqat dasturchining manba kodida qochib qutulishi mumkin bo'lgan ortiqcha narsadan foyda ko'rishi mumkin.
Ikkinchi usul hisoblangan qiymatni ma'lumotlar to'plamida qoldiradi va kerak bo'lganda ularni ko'paytiradi. Bunday holda, stek yozuvlarini nusxalash operatsiyalari qo'llaniladi. Yig'ma mavjud bo'lgan protsessorni nusxalash bo'yicha ko'rsatmalar uchun etarlicha kichik bo'lishi kerak. Qo'lda yozilgan stek kodi ko'pincha ushbu yondashuvdan foydalanadi va umumiy registrlar kabi tezlikka erishadi . uchun Afsuski, optimal "rejalashtirmoqda to'p" algoritmlar keng dasturlash tillariga ishlatiladigan emas.
|
| |