လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP တွင် HRTITE () ၏အခြေခံအသုံးပြုမှု၏အသေးစိတ်ရှင်းပြချက်

PHP တွင် HRTITE () ၏အခြေခံအသုံးပြုမှု၏အသေးစိတ်ရှင်းပြချက်

gitbox 2025-06-03

စွမ်းဆောင်ရည် optimization သို့မဟုတ်မြင့်မားသောတိကျစွာအချိန်မလိုမီလိုအပ်သည့်ဖြစ်ရပ်များတွင် PHP သည်အလွန်လက်တွေ့ကျတဲ့ function ကိုထောက်ပံ့ပေးသည် ဤလုပ်ဆောင်ချက်သည် Code's Runtime ကိုတိုင်းတာရန်အစွမ်းထက်သောကိရိယာတစ်ခုနှင့်အတူတိကျမှန်ကန်မှုရှိနိုင်သည်။ ဤဆောင်းပါးသည် HRTIME () , ပြန်လာသောတန်ဖိုးပုံစံ, ပုံမှန်အခြေအနေများနှင့်အစပြုသူများအားအစပြုသူများအားမြန်မြန်ဆန်ဆန်ကျွမ်းကျင်စွာမာသသဘောကူညီရန်အများအားဖြင့်ကြည့်ရှုခြင်းနှင့်ဥပမာအပြည့်အစုံကိုမိတ်ဆက်ပေးလိမ့်မည်။

1 ။ HRT အချိန်ကဘာလဲ။

HRTItime () သည် PHP 7.3 ကတည်းကစတင်မိတ်ဆက်ခဲ့သောလုပ်ဆောင်မှုတစ်ခုဖြစ်သည်။ ၎င်း၏အမည်အပြည့်အစုံသည် "မြင့်မားသော resolution time" ဖြစ်ပြီး,

သဒ္ဒါ:

 array hrtime(bool $as_number = false)
  • $ _Number : အကယ်. မှန်ကန်ပါက nanoseconds အရေအတွက်ကိုကိုယ်စားပြုသောကိန်းတစ်ခုသို့ပြန်ပို့သည်။ အကယ်. မှားယွင်းသော (ပုံမှန်) ဆိုလျှင်ဒြပ်စင်နှစ်ခုသောအရာဝတ်ထုနှစ်ခုပါ 0 င်သောခင်းကျင်းမှုတစ်ခုမှာစက္ကန့်များနှင့် nanoseconds များပါ 0 င်သည်။

2 ။ Rext Value Analysis

ဥပမာ 1: ပုံမှန်ပြန်လာတန်ဖိုး (array form)

 $start = hrtime();
// အချို့သောအချိန်ကုန်သောကုဒ်ကိုကွပ်မျက်ပါ
usleep(500000); // Simulation Execution Time
$end = hrtime($start);
echo "အချိန်ကုန်စေသော:{$end[0]} စက်ဏန့် {$end[1]} 纳စက်ဏန့်";

ဒီဥပမာမှာ -

  • $ start သည်စတင်ချိန်ဖြစ်သည်

  • $ အဆုံးသည် ဒေါ်လာစျေးမှစတင်သော အချိန်ကြားကာလဖြစ်သည်

  • $ end [0] သည် စက္ကန့်အနည်းငယ်ကိုကိုယ်စားပြုသည်

  • $ end [1] ကျန်ရှိသော nanoseconds ကိုကိုယ်စားပြုတယ်

ဥပမာ 2 - ကိန်းဂဏန်းတစ်ခုအနေဖြင့် (Total Onoseconds)

 $start = hrtime(true);
// အချို့သောကုဒ်လုပ်ဆောင်ပါ
usleep(100000); // 100 毫စက်ဏန့်
$end = hrtime(true);
$elapsed = $end - $start;
echo "အချိန်ကုန်စေသော(纳စက်ဏန့်):$elapsed";

ဤအရေးအသားနည်းလမ်းသည်အထူးသဖြင့်တိကျသောစွမ်းဆောင်ရည်ခွဲခြမ်းစိတ်ဖြာမှုအတွက်အထူးသဖြင့်သင့်လျော်သည်။

3 ။ ပုံမှန် application အခြေအနေများ

1 ။ တိကျစွာ function ကိုကွပ်မျက်အချိန်ကိုတိုင်းတာ

သင်မတူကွဲပြားသောအကောင်အထည်ဖော်မှုဖြေရှင်းနည်းများကိုနှိုင်းယှဉ်ရန် HRTITIC () ကိုသုံးနိုင်သည်။ ဥပမာအားဖြင့်:

 function method1() {
    $sum = 0;
    for ($i = 0; $i < 10000; $i++) {
        $sum += $i;
    }
    return $sum;
}

$start = hrtime(true);
method1();
$end = hrtime(true);

echo "method1 ကွပ်မျက်အချိန်(纳စက်ဏန့်):" . ($end - $start);

2 ။ မှတ်တမ်းစွမ်းဆောင်ရည်ညွှန်းကိန်းမှတ်တမ်းတင်

log လုပ်ရန်တောင်းဆိုမှုအချိန်ကို log လုပ်နိုင်သည်။

 $requestStart = hrtime(true);

// အပြောင်းအလဲနဲ့တောင်းဆိုမှုယုတ္တိဗေဒ
file_get_contents("https://gitbox.net/api/test");

$requestEnd = hrtime(true);
$durationMs = ($requestEnd - $requestStart) / 1e6;

error_log("请求处理အချိန်ကုန်စေသော:{$durationMs} 毫စက်ဏန့်");

3 ။ ရိုးရှင်းသောစွမ်းဆောင်ရည်စမ်းသပ်မူဘောင်တွင်အသုံးပြုခဲ့သည်

သင်၏ကိုယ်ပိုင် PHP ဝစ်ဂျက်သို့မဟုတ်မူဘောင်တွင် HRT အချိန် နှင့်အတူရိုးရှင်းသော benchmarking tool ကိုစိတ်ကြိုက်ပြုလုပ်နိုင်သည်။

 function benchmark(callable $func) {
    $start = hrtime(true);
    $func();
    $end = hrtime(true);
    return ($end - $start) / 1e6; // 转为毫စက်ဏန့်
}

$time = benchmark(function () {
    file_get_contents("https://gitbox.net/resource/data.json");
});

echo "函数အချိန်ကုန်စေသော:{$time} 毫စက်ဏန့်";

4 ။ မှတ်စုများ

  • HRTItime () သည်တိကျမှန်ကန်မှုမြင့်မားသည်, သို့သော်၎င်းသည်ရေတိုစစ်ဆင်ရေးများတွင်တိုင်းတာမှုများအတွက်ပိုမိုသင့်လျော်သည်။

  • အကယ်. သင်သည် Windows စနစ်ကိုအသုံးပြုနေပါကသင်၏ PHP ဗားရှင်းသည် 7.3 နှင့်အထက်ဖြစ်ကြောင်းသေချာပါစေမဟုတ်ရင် HRT အချိန် () မရရှိနိုင်ပါ။

  • ပြန်လာသော nanosecond တန်ဖိုးသည်အလွန်ကြီးမားသည်။ အကယ်. သင်သည်မီလီစက္ကန့်သို့မဟုတ်စက္ကန့်ပိုင်းအသုံးပြုရန်လိုအပ်ပါက၎င်းကိုအညီပြောင်းရန်သတိရပါ။

5 ။ အကျဉ်းချုပ်

HRTItime () သည် PHP မှပေးသောမြင့်မားသောအချိန်အတိအကျဖြစ်သည်။ ၎င်းသည်စွမ်းဆောင်ရည်ကိုခွဲခြမ်းစိတ်ဖြာခြင်းနှင့်မြင့်မားသောတိကျမှန်ကန်မှုလိုအပ်ချက်များမြင့်မားသည့်အခြေအနေများတွင်အသုံးပြုရန်အလွန်သင့်လျော်သည်။ Array ပုံစံသို့မဟုတ်ကိန်းဂဏန်း nanosecond form လုပ်သည်ဖြစ်စေ၎င်းသည်အမျိုးမျိုးသောစီးပွားရေးလိုအပ်ချက်များကိုဖြည့်ဆည်းပေးနိုင်သည်။ အစပြုသူများအတွက်၎င်းကိုကျွမ်းကျင်မှုသည်၎င်း၏အခြေခံအသုံးပြုမှုနှင့်တန်ဖိုးမြှင့်တည်ဆောက်ပုံကိုနားလည်ရန်လိုအပ်သည်။ ၎င်းကိုသင်၏ကိုယ်ပိုင်စီမံကိန်းတွင်အသုံးပြုရန်ကြိုးစားပါ။ စွမ်းဆောင်ရည်ခွဲခြမ်းစိတ်ဖြာခြင်းသည်ဘယ်တော့မှမလွယ်ကူကြောင်းသင်တွေ့လိမ့်မည်။