လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Memory Stream ကို အသုံးပြု. စွမ်းဆောင်ရည်စစ်ဆေးမှု (PHP: // မှတ်ဉာဏ်) နှင့် hash_update_stream ()

Memory Stream ကို အသုံးပြု. စွမ်းဆောင်ရည်စစ်ဆေးမှု (PHP: // မှတ်ဉာဏ်) နှင့် hash_update_stream ()

M66 2025-05-27

PHP တွင်စွမ်းဆောင်ရည်စမ်းသပ်ခြင်းပြုလုပ်ရာတွင်ပရိုဂရမ်တစ်ခု၏လုပ်ငန်းလည်ပတ်မှုစွမ်းဆောင်ရည်ကိုတိုင်းတာရန်နည်းလမ်းများစွာရှိသည်။ Memory Streams ( PHP: // မှတ်ဉာဏ် ) နှင့် hash stream လုပ်ငန်းများ (hash stream လုပ်ငန်းများ ( hash_update_stream () ) သည်အချက်အလက်အမြောက်အများနှင့်ဆက်ဆံရာတွင်အလွန်အသုံးဝင်သောကိရိယာနှစ်ခုဖြစ်သည်။ ဤဆောင်းပါးတွင်စွမ်းဆောင်ရည်စမ်းသပ်ခြင်းအတွက်ဤအင်္ဂါရပ်နှစ်ခုကိုမည်သို့ပေါင်းစပ်ရမည်ကိုဆွေးနွေးပါမည်။

PHP: // မှတ်ဉာဏ် ဆိုတာဘာလဲ။

PHP: // မှတ်ဉာဏ် သည် PHP မှပေးသောအထူးစီးဆင်းနေသော stream wrapper ဖြစ်သည်။ ၎င်းသည်အချက်အလက်များကိုမှတ်ဉာဏ်တွင်သိမ်းဆည်းထားနိုင်သည်။ ဤချဉ်းကပ်မှုသည်မကြာခဏ disk i / o စစ်ဆင်ရေးများကိုရှောင်ရှားနိုင်ပြီးထိရောက်သောထိရောက်မှုကိုတိုးတက်စေသည်။ PHP: // မှတ်ဉာဏ် မှတစ်ဆင့်ဖိုင်၏ contents များကို Memory အတွက် Memory အတွက်တိုက်ရိုက်သိုလှောင်မှုအတွက်တိုက်ရိုက်သိမ်းဆည်းထားနိုင်သည်။

Hash_update_stream ဆိုတာဘာလဲ။

Hash_update_stream () သည် PHP တွင် function တစ်ခုဖြစ်ပြီး Hash တန်ဖိုးများကိုတဖြည်းဖြည်းချင်းမွမ်းမံရန်အသုံးပြုသည်။ အကြောင်းအရာတစ်ခုလုံးကိုမှတ်ဉာဏ်ထဲမတင်ဘဲဖိုင် (သို့) မှတ်ဉာဏ်စီးစောင်းခြင်းကဲ့သို့သောစီးဆင်းမှုဆိုင်ရာအရင်းအမြစ်များအတွက် hash တန်ဖိုးများကိုတွက်ချက်ရန်ခွင့်ပြုသည်။ ၎င်းသည် hash တန်ဖိုးများကိုအကြိမ်ပေါင်းများစွာမွမ်းမံရန်လိုအပ်သည့်ကြီးမားသောဖိုင်များသို့မဟုတ်အခြေအနေများကိုကိုင်တွယ်ရန်အလွန်အသုံးဝင်သည်။

PHP: // မှတ်ဉာဏ် နှင့် hash_update_stream () ကိုပေါင်းစပ်ပါ

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);
?>

code parsing

  1. Memory Stream ကိုဖန်တီးပါ ။ ကျွန်ုပ်တို့သည် Memory Stream တစ်ခုဖန်တီးရန် FOPEN ('PHP: // မှတ်ဉာဏ်', R + ') ကိုအသုံးပြုသည်။ R + mode ကိုဆိုလိုသည်။ ၎င်းကိုဖတ်ရှုခြင်းနှင့်ရေးသားခြင်းကိုဆိုလိုသည်။

  2. Data Data : Simulated 10MB အချက်အလက်များကိုမှတ်ဉာဏ်ချောင်းသို့ရေးရန် fwe () ကို သုံးပါ။

  3. repositioning pointer : နောက်ဆက်တွဲစာဖတ်ခြင်းအတွက် Rewind () မှတစ်ဆင့် Memory Stream ၏ start start ကိုရွှေ့ပါ။

  4. Hash ကိုတွက်ချက်ပါ - SHA-256 hash context ကိုကျွန်ုပ်တို့စတင်ပြီး hash via hash_update_stream မှတဆင့် update လုပ်သည်။

  5. နောက်ဆုံးတွင် 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 Stream ကိုဘာကြောင့်ရွေးချယ်တာလဲ ( PHP: // မှတ်ဉာဏ် )?

မှတ်ဉာဏ်စီးဆင်းမှု၏အကြီးမားဆုံးအားသာချက်မှာမြန်နှုန်းဖြစ်သည်။ Memory Streams သည်ရိုးရာ disk file stream များထက်ပိုမိုမြန်ဆန်စွာဖတ်ပြီးရေးတတ်သည်။ ထို့ကြောင့်စွမ်းဆောင်ရည်စမ်းသပ်ခြင်းပြုလုပ်ရာတွင် Memory Streams သည် I / O စစ်ဆင်ရေးများအပေါ်အလွန်အမင်းလျှော့ချပေးနိုင်သည်။

အဘယ်ကြောင့် hash_update_stream () ?

hash_update_stream () သည် ဖိုင်တစ်ခုလုံးကိုမှတ်ဉာဏ်ထဲသို့မတင်ဘဲ hash တန်ဖိုးကိုတဖြည်းဖြည်းချင်းမွမ်းမံနိုင်သည်။ ဤနည်းအားဖြင့် Memory Overhead ကိုထိရောက်စွာကယ်တင်ခြင်းသို့ရောက်ပြီးဖိုင်များအတွက်စွမ်းဆောင်ရည်မြှင့်တင်ခြင်းသို့မဟုတ်ကြီးမားသောအချက်အလက်များစီးဆင်းမှုများကိုတိုးတက်စေနိုင်သည်။ ဒေတာတစ်ခုလုံးကိုမှတ်ဉာဏ်ထဲထည့်ခြင်းနှင့်မတူဘဲ hash_update_stream () သည် မှတ်ဥာဏ်များစွာကိုမစားဘဲ streaming data streaming data များကိုပြုလုပ်နိုင်သည်။

အကျဉ်းချုပ်

PHP: // မှတ်ဉာဏ် နှင့် hash_update_stream ကို အသုံးပြုခြင်းသည်ပေါင်းစပ်နိုင်သည့်စွမ်းဆောင်ရည်စစ်ဆေးမှုနည်းလမ်းဖြစ်သည်, အထူးသဖြင့်အချက်အလက်အမြောက်အများကိုအကောင်အထည်ဖော်ရန်အတွက်အထူးသဖြင့်အခြေအနေများအတွက်သင့်တော်သောအခြေအနေများအတွက်သင့်တော်သည်။ ဤနည်းအားဖြင့်ကျွန်ုပ်တို့သည် Disk I / O စစ်ဆင်ရေးများကိုလျှော့ချနိုင်ပြီးပရိုဂရမ်ထုတ်လုပ်မှုမြန်နှုန်းနှင့်ထိရောက်မှုကိုတိုးတက်စေနိုင်သည်။ စွမ်းဆောင်ရည်စစ်ဆေးခြင်းနှင့် Hash Computing ကိုအကောင်းဆုံးပြုလုပ်ခြင်းကိုစဉ်းစားသောအခါပရိုဂရမ်၏စွမ်းဆောင်ရည်ကိုသိသိသာသာတိုးတက်လာနိုင်သည်။