အင်တာနက်အက်ပလီကေးရှင်းများအမြဲတမ်းဖွံ့ဖြိုးတိုးတက်မှုနှင့်အတူ developer များ၏စွမ်းဆောင်ရည်ဝယ်လိုအားတိုးလာသည်။ ဘုံဝက်ဘ်ဆိုက်ဖွံ့ဖြိုးတိုးတက်မှုဘာသာစကားအရ PHP ၏စွမ်းဆောင်ရည်သည်အမြဲတမ်းဆွေးနွေးမှုဖြစ်သည်။ ကံကောင်းထောက်မစွာပင် PHP8 သည် PHP Execute ထိရောက်မှုကိုအထူးစွမ်းဆောင်နိုင်သည့် PHP Execution ထိရောက်မှုကိုအလွန်တိုးတက်စေသော အင်္ဂါရပ် (JIT) ကိုမိတ်ဆက်ပေးသည်။ ဤဆောင်းပါးသည် PHP8 ၏ပြဇာတ်များကိုနက်ရှိုင်းစွာခွဲခြမ်းစိတ်ဖြာပြီးအမှန်တကယ်ကုဒ်နမူနာများမှတဆင့်ဖိုင်တင်ခြင်းမြန်နှုန်းကိုမည်သို့တိုးတက်အောင်လုပ်ရမည်ကိုသရုပ်ပြပါလိမ့်မည်။
Just-in-အချိန်အတောအတွင်းစုဆောင်းခြင်းသည်တက်ကြွသောစုစည်းခြင်းနည်းပညာဖြစ်သည်။ ပရိုဂရမ်များသည် bytecode ကို flycode ပေါ်တွင်စက်ကုဒ်နံပါတ်သို့ကူးယူရန်ခွင့်ပြုသည်။ PHP Code ကိုအစဉ်အလာကွပ်မျက်မှုတွင် PHP code ကိုစိတ်တဇ syntax tree (al) သို့ခွဲခြမ်းစိတ်ဖြာခြင်းကိုခွဲခြမ်းစိတ်ဖြာပါလိမ့်မည်။ JIT Technology သည် PHP code ကိုစက်ကုဒ်ထဲသို့တိုက်ရိုက်စုဆောင်းရန်ခွင့်ပြုထားသည်။
PHP8 ၏ JIT function ကိုဖွင့်ခြင်းသည်အလွန်ရိုးရှင်းလွယ်ကူပြီး Php.ini configuration file ရှိရွေးချယ်စရာများကိုသာညှိပါ။ PHPP.INI တွင် JIT function ကိုဖွင့်ရန်အောက်ပါ parameters များကိုသတ်မှတ်ပါ။
opcache.jit_buffer_size=100M
opcache.jit=tracing
OPCICE.jit_Buffer_Size ကို configure လုပ်ခြင်းအားဖြင့် Jit Buffer ၏အရွယ်အစားကိုသတ်မှတ်ပြီး OPCICE.jit ကိုခြေရာခံခြင်းသို့မဟုတ်ငြိမ်သက်ခြင်းကိုသတ်မှတ်ခြင်းဖြင့် JIT Compility နည်းလမ်းကိုသတ်မှတ်ပါ။ ဖွင့်ပြီးနောက် PHP သည် JIT နည်းပညာအားဖြင့် Execution ထိရောက်မှုကိုတိုးတက်စေလိမ့်မည်။
ရိုးရာ PHP Execution လုပ်ငန်းစဉ်သည် PHP ကုဒ်များကိုအချိန်တိုင်းခွဲခြမ်းစိတ်ဖြာရန်နှင့်စုစည်းရန်လိုအပ်သည်။ နောက်တစ်ကြိမ်တွင် PHP ဖိုင်ကိုကွပ်မျက်ခံရသည့်အခါ PHP သည် cache မှစက်ပစ္စည်းကုဒ်ကိုတိုက်ရိုက်ဖွင့်ပြီးခွဲခြမ်းစိတ်ဖြာမှုတစ်ခုချင်းစီ၏လုပ်ငန်းစဉ်ကိုရှောင်ရှားနိုင်ပြီး,
File Loading Speed ကို Jit ကိုမည်သို့တိုးတက်စေကြောင်းသရုပ်ဖော်ရန်ကုဒ်များဥပမာကိုအသုံးပြုသည်။
<?php
// အချိန် - စားသုံးတွက်ချက်မှုတွက်ချက်မှု function ကို
function expensiveCalculation($num) {
$result = 0;
for ($i = 1; $i <= $num; $i++) {
$result += $i;
}
return $result;
}
$start = microtime(true);
for ($i = 0; $i < 1000; $i++) {
expensiveCalculation(10000);
}
$end = microtime(true);
echo "အချိန်ကုန်စေသော:" . ($end - $start) . "စက်ဏန့်";
?>
<?php
// စွမ်းဆောင်နိုင်စေJITနောက်မှတွက်ချက်မှု function ကို
function expensiveCalculation($num) {
$result = 0;
for ($i = 1; $i <= $num; $i++) {
$result += $i;
}
return $result;
}
$start = microtime(true);
for ($i = 0; $i < 1000; $i++) {
expensiveCalculation(10000);
}
$end = microtime(true);
echo "အချိန်ကုန်စေသော:" . ($end - $start) . "စက်ဏန့်";
?>
အထက်ဖော်ပြပါသင်္ကေတဥပမာမှတွေ့မြင်နိုင်သည့်အတိုင်း JIT ကိုဖွင့်ပြီးနောက် PHP code ၏ Execute အမြန်နှုန်းသည်သိသိသာသာတိုးတက်လာသည်။ ကွပ်မျက်ခံရတိုင်း PHP သည်ထပ်ခါတလဲလဲခွဲခြမ်းစိတ်ဖြာခြင်းနှင့်စုစည်းခြင်းလုပ်ငန်းများလုပ်ဆောင်ခြင်းမရှိတော့ပါ, သို့သော် cache မှစက်ကုဒ်ကိုတိုက်ရိုက်ဖတ်ရှုသည်။
PHP8 ၏ Just-in-အချိန်မီစုဆောင်းခြင်းဆိုင်ရာအသွင်အပြင်သည် developer များထံမှသိသာထင်ရှားသည့်စွမ်းဆောင်ရည်ကိုတိုးတက်စေသည်, JIT မှတစ်ဆင့် PHP သည် bytecode ကိုစက်ကုဒ်ထဲသို့တိုက်ရိုက် compile လုပ်နိုင်သော, ကွပ်မျက်ခြင်းနှင့်အရှိန်အဟုန်ဖြင့်တိုးတက်အောင်ပြုလုပ်ရန်အပိုဆောင်းအပိုဆောင်းကိုရှောင်ရှားနိုင်သည်။ developer များသည်သက်ဆိုင်ရာ parameters တွေကို php.ini ဖိုင်ရှိသက်ဆိုင်ရာ parameters တွေကိုပြောင်းလဲပြီး၎င်း၏စွမ်းဆောင်ရည်အားသာချက်များကိုအမှန်တကယ်ကုဒ်နမူနာများမှတဆင့်အတည်ပြုရန်အတည်ပြုနိုင်သည်။ ကြီးမားသောဖိုင်များဖြင့် application များသို့မဟုတ်မကြာခဏတင်ရန်လိုအပ်သည့်အတွက် JIT သည်စွမ်းဆောင်ရည်တိုးတက်စေရန်ထိရောက်သောနည်းလမ်းတစ်ခုဖြစ်သည်မှာသေချာသည်။