လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> စွမ်းဆောင်ရည်ကိုတိုးတက်စေရန် Parse_URL ၏ရလဒ်များကိုမည်သို့သိမ်းဆည်းရမည်နည်း။

စွမ်းဆောင်ရည်ကိုတိုးတက်စေရန် Parse_URL ၏ရလဒ်များကိုမည်သို့သိမ်းဆည်းရမည်နည်း။

gitbox 2025-05-26

Daily Php Development တွင် Parse_url သည် URL ကြိုးများကိုချုပ်ကိုင်ထားပြီးသူတို့၏အစိတ်အပိုင်းများကိုပြန်လည်ပေးအပ်သောအလွန်အသုံးများသောလုပ်ဆောင်မှုတစ်ခုဖြစ်သည်။ ဒီ function ဟာမြန်ဆန်ပေမယ့် URL အမြောက်အမြားထုတ်လုပ်တဲ့ URL တွေအများကြီးကိုအသုံးချတဲ့အခါမှာ URL ကိုမကြာခဏထပ်ခါတလဲလဲထပ်ခါတလဲလဲထပ်ခါတလဲလဲထပ်ခါတလဲလဲထပ်ခါတလဲလဲပြောရရင် URL ကိုထပ်ခါတလဲလဲပြောရရင်။

ဤပုံတူတွက်ချက်မှုကိုရှောင်ရှားရန်ကျွန်ုပ်တို့သည် Parse_Url ၏ရလဒ်များကို cache ယန္တရားမှတဆင့်သိမ်းဆည်းနိုင်သည်။ PHP application များ၏စွမ်းဆောင်ရည်ကိုတိုးတက်စေရန် Parse_URL ၏ရလဒ်များကိုရိုးရှင်းလွယ်ကူစွာထိရောက်သောနည်းလမ်းဖြင့်မည်သို့သိမ်းဆည်းရမည်ကိုဤဆောင်းပါးတွင်ဖော်ပြပါမည်။

Parse_URL ၏ရလဒ်ကိုအဘယ်ကြောင့် cache?

Parse_Url သည် built-in php function တစ်ခုဖြစ်ပြီးအကွပ်မျက်ခြင်းစွမ်းရည်မြင့်မားသော်လည်း၎င်းသည် stringsing ခွဲခြမ်းစိတ်ဖြာခြင်း, အကယ်. စနစ်သည်တူညီသောနေရာများတွင်တူညီသော URL ကိုထပ်ခါတလဲလဲပြုလုပ်ပါက Parse_URL အချိန်တိုင်းတွင်အမှန်တကယ်အလဟသို့ခေါ်ဆိုသည်။ သိမ်းဆည်းထားသောခွဲခြမ်းစိတ်ဖြာမှုရလဒ်များဖြင့်သင်လုပ်နိုင်သည် -

  • ထပ်ခါတလဲလဲ parsing ရှောင်ကြဉ်;

  • CPU overhead ကိုလျှော့ချပါ။

  • အထူးသဖြင့်သိသိသာသာဆိုင်ကလုန်းသို့မဟုတ်မြင့်မားသောတစ်ပြိုင်နက်တည်းပတ်ဝန်းကျင်တွင်အထူးစွမ်းဆောင်ရည်ကိုတိုးတက်အောင်လုပ်ပါ။

အကောင်အထည်ဖော်မှုနည်းလမ်း

အောက်ဖော်ပြပါ Parse_Url ၏ရလဒ်များကိုမှတ်ဉာဏ်အဆင့် cache ကိုပြုပြင်ခြင်းအတွက်ရိုးရှင်းသော function encapsulationultulishularulation များကိုပေးသည်။

 function cached_parse_url(string $url): array|false {
    static $cache = [];

    // hash ကို cache ခလုတ်အဖြစ်အသုံးပြုပါ,ရေှာင်ရှား URL ရှည်လျားသော array keys များကိုကြာမြင့်စွာကြုံတွေ့ရသည်
    $key = md5($url);

    if (isset($cache[$key])) {
        return $cache[$key];
    }

    $parsed = parse_url($url);
    if ($parsed !== false) {
        $cache[$key] = $parsed;
    }

    return $parsed;
}

ဤလုပ်ဆောင်ချက်၏အဓိကအချက်မှာ static variable variable ကို $ cache ဖြစ်သည်။ ၎င်းသည် function ၏နယ်ပယ်အတွင်းတွင်ကမ္ဘာလုံးဆိုင်ရာမျှဝေသည်။ ထို့ကြောင့် function ကိုအကြိမ်ပေါင်းများစွာဟုခေါ်သော်ပင် cache ကိုအချိန်အတိုင်းအတာတစ်ခုအထိထိမိလိမ့်မည်။

အသုံးပြုမှုဥပမာ

 $urls = [
    'https://gitbox.net/path?query=1',
    'https://gitbox.net/path?query=1',
    'https://gitbox.net/otherpath?query=2',
];

foreach ($urls as $url) {
    $parts = cached_parse_url($url);
    print_r($parts);
}

အပေါ်ကဥပမာမှာ URL သုံးခုရှိတယ်, သူတို့ထဲကတစ်ခုကပုံတူပွားခြင်း, Cached_parse_Url က တစ်ချိန်ကခွဲခြမ်းစိတ်ဖြာပါလိမ့်မယ်။

extension: Apcu-based cache

ပိုကြီးတဲ့သို့မဟုတ် Cross-Request Cache လိုအပ်ချက်များအတွက် Apcu ကိုသုံးနိုင်သည်။

 function cached_parse_url_apcu(string $url): array|false {
    $key = 'parsed_url_' . md5($url);

    $cached = apcu_fetch($key);
    if ($cached !== false) {
        return $cached;
    }

    $parsed = parse_url($url);
    if ($parsed !== false) {
        apcu_store($key, $parsed);
    }

    return $parsed;
}

APCU ကို အသုံးပြုခြင်းသည် Cactes ကိုတောင်းဆိုမှုအသစ်များကိုဖြတ်သန်းရန်ခွင့်ပြုရန်ခွင့်ပြုသည်, 0 က်ဘ်အပလီကေးရှင်းများသို့မဟုတ် cli scripts များကိုစွမ်းဆောင်ရည်ပိုမိုကောင်းမွန်စေရန်သင့်တော်သည်။

မှတ်သားရန်အရာ

  1. Parse_Url သည် မှားယွင်းသောမမှန်ကန်သော URLs များကိုခွဲခြမ်းစိတ်ဖြာသောအခါ မှားယွင်းစွာ ပြန်လာလိမ့်မည်။ ရလဒ်များကိုသူတို့ကိုမ cache မတိုင်မီဆုံးဖြတ်ရန်အကြံပြုသည်။

  2. cacheing ယန္တရားကိုယ်တိုင်က Memory Resource ကိုသိမ်းပိုက်လိမ့်မည်။

  3. Multi-Threaded သို့မဟုတ်အလွန်အမင်းတစ်ပြိုင်နက်တည်းပတ် 0 န်းကျင်တွင်ပတ် 0 န်းကျင်ပတ် 0 န်းကျင်တွင် apcu ကိုအသုံးပြုပါကထိရောက်သောလုံခြုံမှုလိုအပ်သည်။

ကောက်ချက်

Parse_Url သည်အသေးအဖွဲလုပ်ဆောင်မှုတစ်ခုဖြစ်သော်လည်းကြိမ်နှုန်းမြင့်မားသောအချိန်တွင်၎င်း၏စွမ်းဆောင်ရည်သုံးစွဲမှုကိုလျစ်လျူရှု။ မရပါ။ ရိုးရှင်းသော cachead ယန္တရားကိုမိတ်ဆက်ပေးခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်ခွဲခြမ်းစိတ်ဖြာမှုတိကျမှန်ကန်မှုကိုသေချာစေရန်စနစ်၏အရင်းအမြစ် overhead ကိုသိသိသာသာလျှော့ချနိုင်သည်။ cache ၏စွမ်းအားသည်အသေးစိတ်အချက်အလက်များကိုလည်းတန်ဖိုးထားနိုင်သည်။ PHP Projects သည်စွမ်းဆောင်ရည်ပိုမိုကောင်းမွန်သည့်လိုအပ်ချက်များရှိသော PHP စီမံကိန်းများအတွက်ဤ optimization သည်အလေ့အကျင့်အလွန်ထိုက်တန်သည်။