PHP တွင်စွမ်းဆောင်ရည်စမ်းသပ်ခြင်းပြုလုပ်ရာတွင်ပရိုဂရမ်တစ်ခု၏လုပ်ငန်းလည်ပတ်မှုစွမ်းဆောင်ရည်ကိုတိုင်းတာရန်နည်းလမ်းများစွာရှိသည်။ Memory Streams ( PHP: // မှတ်ဉာဏ် ) နှင့် hash stream လုပ်ငန်းများ (hash stream လုပ်ငန်းများ ( hash_update_stream () ) သည်အချက်အလက်အမြောက်အများနှင့်ဆက်ဆံရာတွင်အလွန်အသုံးဝင်သောကိရိယာနှစ်ခုဖြစ်သည်။ ဤဆောင်းပါးတွင်စွမ်းဆောင်ရည်စမ်းသပ်ခြင်းအတွက်ဤအင်္ဂါရပ်နှစ်ခုကိုမည်သို့ပေါင်းစပ်ရမည်ကိုဆွေးနွေးပါမည်။
PHP: // မှတ်ဉာဏ် သည် PHP မှပေးသောအထူးစီးဆင်းနေသော stream wrapper ဖြစ်သည်။ ၎င်းသည်အချက်အလက်များကိုမှတ်ဉာဏ်တွင်သိမ်းဆည်းထားနိုင်သည်။ ဤချဉ်းကပ်မှုသည်မကြာခဏ disk i / o စစ်ဆင်ရေးများကိုရှောင်ရှားနိုင်ပြီးထိရောက်သောထိရောက်မှုကိုတိုးတက်စေသည်။ PHP: // မှတ်ဉာဏ် မှတစ်ဆင့်ဖိုင်၏ contents များကို Memory အတွက် Memory အတွက်တိုက်ရိုက်သိုလှောင်မှုအတွက်တိုက်ရိုက်သိမ်းဆည်းထားနိုင်သည်။
Hash_update_stream () သည် PHP တွင် function တစ်ခုဖြစ်ပြီး Hash တန်ဖိုးများကိုတဖြည်းဖြည်းချင်းမွမ်းမံရန်အသုံးပြုသည်။ အကြောင်းအရာတစ်ခုလုံးကိုမှတ်ဉာဏ်ထဲမတင်ဘဲဖိုင် (သို့) မှတ်ဉာဏ်စီးစောင်းခြင်းကဲ့သို့သောစီးဆင်းမှုဆိုင်ရာအရင်းအမြစ်များအတွက် hash တန်ဖိုးများကိုတွက်ချက်ရန်ခွင့်ပြုသည်။ ၎င်းသည် hash တန်ဖိုးများကိုအကြိမ်ပေါင်းများစွာမွမ်းမံရန်လိုအပ်သည့်ကြီးမားသောဖိုင်များသို့မဟုတ်အခြေအနေများကိုကိုင်တွယ်ရန်အလွန်အသုံးဝင်သည်။
PHP: // မှတ်ဉာဏ် နှင့် hash_update_stream ကို ပေါင်းစပ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်ထိရောက်သောစွမ်းဆောင်ရည်စမ်းသပ်မှုကိုဖန်တီးနိုင်သည်။ Disk I / O ၏ overhead ၏ overhead ကိုလျှော့ချရန်နှင့် Hash_update_stream () မှတဆင့် hash_update_stream () ၏ hash တန်ဖိုးကိုတွက်ချက်ရန်ဖိုင်စီးဆင်းမှုအစား memory stream များကိုအသုံးပြုပါမည်။
<?php
// Memory Streams ကိုဖန်တီးပါ
$memoryStream = fopen('php://memory', 'r+');
// ဒေတာအမြောက်အမြားအရေးအသားရေးသားခြင်း
$data = str_repeat('A', 1024 * 1024 * 10); // 10MB ၏အချက်အလက်
fwrite($memoryStream, $data);
// ဖိုင်ညွှန်ပြစက်ကိုစီး၏အစသို့ရွှေ့ပါ
rewind($memoryStream);
// အသုံးပြု hash_update_stream() hash တန်ဖိုးတွက်ချက်
$hashContext = hash_init('sha256'); // ဖြစ်ပေါ်လာခြင်း SHA-256 ဟက်ရှုပ်
hash_update_stream($hashContext, $memoryStream);
// 获取ဟက်ရှုပ်值
$hashValue = hash_final($hashContext);
echo "计算出的ဟက်ရှုပ်值: $hashValue\n";
// စီးကိုပိတ်ပါ
fclose($memoryStream);
?>
Memory Stream ကိုဖန်တီးပါ ။ ကျွန်ုပ်တို့သည် Memory Stream တစ်ခုဖန်တီးရန် FOPEN ('PHP: // မှတ်ဉာဏ်', R + ') ကိုအသုံးပြုသည်။ R + mode ကိုဆိုလိုသည်။ ၎င်းကိုဖတ်ရှုခြင်းနှင့်ရေးသားခြင်းကိုဆိုလိုသည်။
Data Data : Simulated 10MB အချက်အလက်များကိုမှတ်ဉာဏ်ချောင်းသို့ရေးရန် fwe () ကို သုံးပါ။
repositioning pointer : နောက်ဆက်တွဲစာဖတ်ခြင်းအတွက် Rewind () မှတစ်ဆင့် Memory Stream ၏ start start ကိုရွှေ့ပါ။
Hash ကိုတွက်ချက်ပါ - SHA-256 hash context ကိုကျွန်ုပ်တို့စတင်ပြီး hash via hash_update_stream မှတဆင့် update လုပ်သည်။
နောက်ဆုံးတွင် Hash : နောက်ဆုံးတွင်တွက်ချက်ထားသည့် hash တန်ဖိုးကို hash_final () မှတဆင့်ရရှိသည်။
အထက်ပါကုဒ်နမူနာတွင် disk files များအစား memory stream များကို အသုံးပြု. Hash_Update_Stream မှတဆင့် hash တန်ဖိုးကိုတွက်ချက်သည်။ ဤနည်းလမ်းသည် disk i / o စစ်ဆင်ရေးများကိုထိရောက်စွာလျှော့ချပြီးစွမ်းဆောင်ရည်ကိုတိုးတက်စေနိုင်သည်။
စွမ်းဆောင်ရည်စမ်းသပ်ခြင်းလုပ်ဆောင်ရန်ကျွန်ုပ်တို့သည်ဤကုဒ်ကိုအကြိမ်ပေါင်းများစွာလည်ပတ်နိုင်ပြီးကွပ်မျက်ချိန်တိုင်းကိုတိုင်းတာနိုင်သည်။ ဥပမာအားဖြင့်:
<?php
$startTime = microtime(true);
// စွမ်းဆောင်ရည်စစ်ဆေးမှုများကို run ဖို့ကုဒ်
// ဤသည်အကြိမ်ပေါင်းများစွာထပ်ခါတလဲလဲနိုင်ပါတယ်,သို့မဟုတ်စမ်းသပ်ဖို့ဒေတာပမာဏကိုတိုးမြှင့်
$endTime = microtime(true);
$executionTime = $endTime - $startTime;
echo "ကွပ်မျက်အချိန်: " . $executionTime . " စက်ဏန့်\n";
?>
ဤကုဒ်ကိုအကြိမ်ပေါင်းများစွာကွပ်မျက်ခြင်းအားဖြင့်အချိန်တိုင်းကွပ်မျက်ချိန်ကိုမှတ်တမ်းတင်ခြင်းအားဖြင့် Hash တွက်ချက်မှု၏စွမ်းဆောင်ရည်ကိုကွဲပြားခြားနားသောဒေတာပမာဏအောက်တွင် Memory Streams နှင့် hassh_update_stream () ကို အသုံးပြု. ရနိုင်သည်။
မှတ်ဉာဏ်စီးဆင်းမှု၏အကြီးမားဆုံးအားသာချက်မှာမြန်နှုန်းဖြစ်သည်။ Memory Streams သည်ရိုးရာ disk file stream များထက်ပိုမိုမြန်ဆန်စွာဖတ်ပြီးရေးတတ်သည်။ ထို့ကြောင့်စွမ်းဆောင်ရည်စမ်းသပ်ခြင်းပြုလုပ်ရာတွင် Memory Streams သည် I / O စစ်ဆင်ရေးများအပေါ်အလွန်အမင်းလျှော့ချပေးနိုင်သည်။
hash_update_stream () သည် ဖိုင်တစ်ခုလုံးကိုမှတ်ဉာဏ်ထဲသို့မတင်ဘဲ hash တန်ဖိုးကိုတဖြည်းဖြည်းချင်းမွမ်းမံနိုင်သည်။ ဤနည်းအားဖြင့် Memory Overhead ကိုထိရောက်စွာကယ်တင်ခြင်းသို့ရောက်ပြီးဖိုင်များအတွက်စွမ်းဆောင်ရည်မြှင့်တင်ခြင်းသို့မဟုတ်ကြီးမားသောအချက်အလက်များစီးဆင်းမှုများကိုတိုးတက်စေနိုင်သည်။ ဒေတာတစ်ခုလုံးကိုမှတ်ဉာဏ်ထဲထည့်ခြင်းနှင့်မတူဘဲ hash_update_stream () သည် မှတ်ဥာဏ်များစွာကိုမစားဘဲ streaming data streaming data များကိုပြုလုပ်နိုင်သည်။
PHP: // မှတ်ဉာဏ် နှင့် hash_update_stream ကို အသုံးပြုခြင်းသည်ပေါင်းစပ်နိုင်သည့်စွမ်းဆောင်ရည်စစ်ဆေးမှုနည်းလမ်းဖြစ်သည်, အထူးသဖြင့်အချက်အလက်အမြောက်အများကိုအကောင်အထည်ဖော်ရန်အတွက်အထူးသဖြင့်အခြေအနေများအတွက်သင့်တော်သောအခြေအနေများအတွက်သင့်တော်သည်။ ဤနည်းအားဖြင့်ကျွန်ုပ်တို့သည် Disk I / O စစ်ဆင်ရေးများကိုလျှော့ချနိုင်ပြီးပရိုဂရမ်ထုတ်လုပ်မှုမြန်နှုန်းနှင့်ထိရောက်မှုကိုတိုးတက်စေနိုင်သည်။ စွမ်းဆောင်ရည်စစ်ဆေးခြင်းနှင့် Hash Computing ကိုအကောင်းဆုံးပြုလုပ်ခြင်းကိုစဉ်းစားသောအခါပရိုဂရမ်၏စွမ်းဆောင်ရည်ကိုသိသိသာသာတိုးတက်လာနိုင်သည်။