curl_close function ၏လုပ်ဆောင်ချက်သည် connection sools နှင့် session data ကဲ့သို့သော curl session များအသုံးပြုသောအရင်းအမြစ်များကိုထုတ်လွှတ်ရန်ဖြစ်သည်။ သို့သော်မှတ်ဉာဏ်အားလုံးချက်ချင်းဖြန့်ချိလိမ့်မည်ဟုမအာမခံနိုင်ပါ။ မှတ်ဉာဏ်အပြည့်အဝမလွှတ်ရသည့်အကြောင်းရင်းများကိုဤတွင်ဖော်ပြထားသည်။
PHP တွင် Memory Management သည်အမှိုက်သရိုက်များစုဆောင်းခြင်းယန္တရားမှတစ်ဆင့်ပြုလုပ်သည်။ curl_clocess function ကိုဟုခေါ်သော်ပင်, သက်ဆိုင်ရာအရင်းအမြစ်များကိုမှတ်ဉာဏ်ကိုချက်ချင်းပြန်လည်အသုံးပြုမည်မဟုတ်ပါ။ အမှိုက်သရိုက်စုဆောင်းမှုယန္တရားသည် PHP Run သံသရာအတွင်းရှိ memory အရင်းအမြစ်များကိုပုံမှန်အားဖြင့်စစ်ဆေးပြီးသန့်ရှင်းစင်ကြယ်စေသည်။
Code တွင်အခြားနေရာများတွင်နေရာများတွင်ဖော်ပြထားပါကလက်ကိုင်များကိုကောက်ကောက်ကောက်ရန်ကိုးကားချက်များရှိနေသေးသည်။ ထို့နောက် PHP သည်ဤမှတ်ဉာဏ်ကိုချက်ချင်းဖြန့်ချိမည်မဟုတ်ပါ။ ကိုးကားချက်အားလုံးဖျက်ဆီးခံရသည်အထိကိုးကားချက်များသည်အရင်းအမြစ်၏တရားဝင်မှုကိုထိန်းသိမ်းရန်ဖြစ်သည်။
Curl_Close function ကိုဟုခေါ်သော်ငြားသော်လည်းကောင်း, အခြားအရင်းအမြစ်များကိုကိုင်တွယ်သောအခြားအရင်းအမြစ်များကိုကိုင်တွယ်ဖြေရှင်းနိုင်သည့်အခြားအရင်းအမြစ်များသည် (စင်တာများ, cache များစသဖြင့်) တွင်မူတည်သည်။
မှတ်ဉာဏ်ကိုပိုမိုထိရောက်စွာဖြန့်ချိနိုင်အောင်သေချာစေရန်အောက်ပါ optimization အစီအမံများကိုပြုလုပ်နိုင်သည်။
Curl တောင်းဆိုမှုတစ်ခုစီပြီးနောက် curl_close ကို သယံဇာတများကိုအခမဲ့ပေးရန်တောင်းဆိုလိမ့်မည်။ အကယ်. curl sessions မျိုးစုံကိုအသုံးပြုပါက session တစ်ခုစီကိုတစ်ခုစီပိတ်ထားရမည်။ ဥပမာအားဖြင့်:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://gitbox.net/some-endpoint');
$response = curl_exec($ch);
curl_close($ch);
သင်၏ code ထဲရှိလက်ကိုင်များကိုဆံပင်ကောက်ကောက်ရန်ကိုးကားချက်များကိုသင်ဖန်တီးပါက curl_close ခေါ်ဆိုပြီးနောက်ဤကိုးကားချက်များကိုအတိအလင်းဖျက်ဆီးရန် unset () ကို သုံးနိုင်သည်။ ၎င်းသည် PHP သည် PHP ကိုအစောပိုင်းကမှတ်မိနိုင်ကြောင်းအစောပိုင်းတွင်အသိအမှတ်ပြုရန်အတွက်အမှိုက်သရိုက်စုဆောင်းမှုယန္တရားကိုဖြစ်ပေါ်စေသည်။
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://gitbox.net/some-endpoint');
$response = curl_exec($ch);
curl_close($ch);
unset($ch); // ကိုးကားကိုဖျက်ပါ
သင်တစ်ချိန်တည်းတွင် curl တောင်းဆိုမှုများကိုစတင်ရန်လိုအပ်ပါက curl_multi_ * function ကို သုံး. သင်စဉ်းစားနိုင်သည်။ ဤလုပ်ဆောင်ချက်များသည်ပြတ်တောင်းပြတ်တောင်းတောင်းဆိုမှုများကိုနိုင်စွမ်းရှိစေပြီးပိုမိုထိရောက်သောအစည်းအဝေးများကိုပိုမိုထိရောက်စွာစီမံခန့်ခွဲနိုင်သည်။ ဤနည်းအားဖြင့်တောင်းဆိုမှုများအားလုံးကိုပြီးဆုံးပြီးနောက်, အစည်းအဝေးများအားလုံးကိုတစ်ပြိုင်နက်တည်းပိတ်ထားနိုင်သည်။
$mh = curl_multi_init();
$ch1 = curl_init();
curl_setopt($ch1, CURLOPT_URL, 'https://gitbox.net/endpoint1');
curl_multi_add_handle($mh, $ch1);
$ch2 = curl_init();
curl_setopt($ch2, CURLOPT_URL, 'https://gitbox.net/endpoint2');
curl_multi_add_handle($mh, $ch2);
do {
curl_multi_exec($mh, $active);
} while ($active);
curl_multi_remove_handle($mh, $ch1);
curl_multi_remove_handle($mh, $ch2);
curl_close($ch1);
curl_close($ch2);
curl_multi_close($mh);
ရှုပ်ထွေးသောဆံပင်ကောက်ကောက်တောင်းဆိုမှုများပြုလုပ်ရာတွင်မှတ်ဉာဏ်အသုံးပြုမှုသည်မြင့်မားနေသည်ကိုသင်တွေ့ရှိပါကမှတ်ဥာဏ်ယိုစိမ့်မှုများကိုခြေရာခံရန် PHP ၏မှတ်ဉာဏ်ခွဲခြမ်းစိတ်ဖြာခြင်းကိရိယာများ (XDebug ကဲ့သို့သော Xdebug) ကိုသုံးနိုင်သည်။ Stack နှင့် Memory Alcocation ကိုခွဲခြမ်းစိတ်ဖြာခြင်းအားဖြင့်မှတ်ဉာဏ်ပေါက်ကြားမှုများဖြစ်ပေါ်လာနိုင်သည့်မည်သည့်နေရာတွင်ရှိသည်ကိုသင်ခွဲခြားသိမြင်ရန်ကူညီနိုင်သည်။