PHP ၏အမှိုက်သရိုက်စုဆောင်းခြင်းယန္တရားတွင် GC_MEM_COFCACHES နှင့် GC_COLLECTST_CORCLE များသည်အလွန်အရေးကြီးသောလုပ်ဆောင်ချက်နှစ်ခုဖြစ်သည်။ သူတို့ကိုအသုံးပြုခြင်းကိုအသုံးပြုခြင်းသည်မှတ်ဥာဏ်ပြန်လည်အသုံးပြုခြင်းထိရောက်မှုကိုသိသိသာသာတိုးတက်စေနိုင်သည်, မှတ်ဉာဏ်ယိုစိမ့်မှုအန္တရာယ်ကိုလျှော့ချပေးပြီးပရိုဂရမ်စွမ်းဆောင်ရည်ကိုလျှော့ချနိုင်သည်။ ဤဆောင်းပါးသည်ဤလုပ်ဆောင်မှုနှစ်ခုနှင့် တွဲဖက်. မှတ်ဉာဏ်စီမံခန့်ခွဲမှုများကိုအကောင်အထည်ဖော်ရန်အတွက်လုပ်ဆောင်ချက်များ, အသုံးပြုမှုနည်းလမ်းများနှင့်အကောင်းဆုံးအလေ့အကျင့်များကိုအသေးစိတ်ဖော်ပြထားသည်။
PHP တွင်အမှိုက်များစုဆောင်းခြင်း (GC) သည်မှတ်ဥာဏ်ယိုစိမ့်မှုကိုတားဆီးရန်ရည်ညွှန်းထားသော variable များနှင့်အရာဝတ်ထုများကိုအလိုအလျောက်ပြန်လည်အသုံးပြုခြင်းအတွက်တာဝန်ရှိသည်။ PHP သည်ရည်ညွှန်းရေတွက်ခြင်းယန္တရားမှတစ်ဆင့် Variables များကိုလမ်းကြောင်းရှာဖွေသည်။
GC_COLLETED_CYCLE () သည်အမှိုက်များစုဆောင်းခြင်းကိုတက်ကြွစွာဆုပ်ကိုင်ထားသည့် PHP မှပေးသော function တစ်ခုဖြစ်သည်။ ၎င်းသည်စက်ဝိုင်းကိုးကားချက်များဖြင့်ထုတ်လုပ်ထားသောအမှိုက်များအားလုံးကိုစစ်ဆေးပြီးပြန်လည်အသုံးပြုသည်။
အမှိုက်သရိုက်စုဆောင်းခြင်းသံသရာအပြည့်ကိုလုပ်ဆောင်ပါ,
ပြန်လည်အသုံးပြုပြီးသောကွင်းအရေအတွက်ကိုပြန်ပို့သည်။
<?php
// မြို့ပတ်ရထားရည်ညွှန်းဥပမာတစ်ခုဖန်တီးပါ
class A {
public $b;
}
class B {
public $a;
}
$a = new A();
$b = new B();
$a->b = $b;
$b->a = $a;
// တက်ကြွစွာအမှိုက်စုဆောင်းခြင်း
$collected = gc_collect_cycles();
echo "ပြန်လည်အသုံးပြု $collected မှတ်ဥာဏ်ကိုးကား\n";
?>
GC_MEMM_CRCACHES () function ကိုအမှိုက်သရိုက်စုဆောင်းခြင်းအတွင်းရှိ cache ကိုသန့်ရှင်းရေးလုပ်ရန်နှင့်မှတ်ဥာဏ်ကိုအခမဲ့ပေးသည်။ ဤအပင်များသည်များသောအားဖြင့်အမှိုက်သရိုက်များအတွင်းထုတ်လုပ်သောယာယီဒေတာအဆောက်အအုံများဖြစ်သည်။
အမှိုက်သရိုက်စုဆောင်းသူ၏အတွင်းပိုင်း cache ကိုသန့်ရှင်းရေး လုပ်. အပိုမှတ်ဉာဏ်ကိုအခမဲ့ရယူပါ။
ပြန်လည်အသုံးပြုခြင်းများကိုပြန်လည်အသုံးပြုခြင်းမပြုနိုင်ပါ။
<?php
// သန့်ရှင်းရေးလုပ်သည် GC သိုကာတာ,မှတ်ဥာဏ်အခမဲ့မှတ်ဥာဏ်
gc_mem_caches();
echo "已သန့်ရှင်းရေးလုပ်သည်垃圾回收သိုကာတာ\n";
?>
PHP script လည်ပတ်မှုတွင် GC_COLLECT_CYCLES () ကိုခေါ်ဆိုခြင်းသည်မြို့ပတ်ရထားရည်ညွှန်းမှတ်ဉာဏ်ကိုပြန်လည်အသုံးချနိုင်သော်လည်းအမှိုက်သရိုက်စုဆောင်းမှုသည်အပိုမှတ်ဉာဏ်ရှိနေသေးသည်။ ယခုအချိန်တွင် GC_MEM_CRCACHES () ကိုချက်ချင်းခေါ်ပါကမှတ်ဉာဏ်အသုံးပြုမှုကိုထပ်မံလျှော့ချရန်ဤ cache များကိုဖြန့်ချိနိုင်သည်။
<?php
// အမှိုက်သရိုက်စုဆောင်းခြင်း
$collected = gc_collect_cycles();
echo "ပြန်လည်အသုံးပြု $collected ရည်ညွှန်းကိုးကား\n";
// သန့်ရှင်းရေးလုပ်သည် GC သိုကာတာ,အပိုမှတ်ဉာဏ်ကိုအခမဲ့
gc_mem_caches();
echo "垃圾回收သိုကာတာ已သန့်ရှင်းရေးလုပ်သည်\n";
?>
ဥပမာအားဖြင့်, long-run php scripts (ထိုကဲ့သို့သော Daemons, cli scripts နှင့် task agu scripts လုပ်သားများ) တွင်မှတ်ဉာဏ်အသုံးပြုမှုမြင့်မားပြီးမြို့ပတ်ရထားကိုးကားချက်များရှိသည်။ ဤလုပ်ဆောင်ချက်နှစ်ခုကိုပုံမှန်နှင့်တက်ကြွစွာခေါ်ဆိုရန်အကြံပြုသည်။
ဥပမာ -
<?php
while (true) {
// Business Logic Simulate
do_something();
// 定期进行垃圾回收和သိုကာတာသန့်ရှင်းရေးလုပ်သည်
$collected = gc_collect_cycles();
gc_mem_caches();
echo "ပြန်လည်အသုံးပြု $collected ရည်ညွှန်းကိုးကား,သိုကာတာ已သန့်ရှင်းရေးလုပ်သည်\n";
// အိပ်နေခြင်း,အလွန်အကျွံအသုံးပြုမှုကိုတားဆီး CPU
sleep(10);
}
?>
GC_COLLECT_COLCLE () ကိုကိုးကားထားသောမှတ်ဉာဏ်ကိုပြန်လည်အသုံးပြုရန်အသုံးပြုသည်။
GC_MEMM_CACHES () သည်အမှိုက်သရိုက်စုဆောင်းသူ၏အတွင်းပိုင်း cache ကိုသန့်ရှင်းရေးလုပ်ရန်အသုံးပြုသည်။
ပေါင်းစပ်အသုံးပြုသောအသုံးပြုမှုကိုပိုမိုထိရောက်စွာအခမဲ့မှတ်ဉာဏ်နှင့်မှတ်ဉာဏ်ယိုစိမ့်ခြင်းနှင့် boat လျှော့ချနိုင်ပါတယ်။
ရှည်လျားသောပြေး script များဖြင့်ဤလုပ်ဆောင်ချက်နှစ်ခုကိုခေါ်ဆိုခြင်းသည်ကျိုးကြောင်းဆီလျော်စွာထိန်းသိမ်းထားသည်။
ဤလုပ်ဆောင်မှုနှစ်ခုကို အသုံးပြု. ကျွမ်းကျင်စွာနှင့်မှန်ကန်စွာအသုံးပြုခြင်းသည် PHP အစီအစဉ်များ၏မှတ်ဉာဏ်ပြန်လည်နာလန်ထူထိရောက်မှုကိုသိသိသာသာတိုးတက်စေပြီးလျှောက်လွှာစွမ်းဆောင်ရည်နှင့်တည်ငြိမ်မှုကိုသေချာစေသည်။
PHP အမှိုက်သရိုက်စုဆောင်းမှုယန္တရားအကြောင်းပိုမိုသိလိုပါကသင်သွားရောက်ကြည့်ရှုနိုင်သည်။
https://gitbox.net/enual/en/function.gc-Crollectect-cycles.php
https://gitbox.net/menual/en/function.gc-mem-Caches.php