အခမဲ့ Chrome တိုးချဲ့မှု — စက်ပေါ်ရှိ ဖြတ်တောက်မှုများ

Web Worker ရုပ်ပုံလုပ်ဆောင်ခြင်း အခြေခံများ

Web Worker သည် တည်းဖြတ်သူ၏ ပင်မစာတွဲကို အလုပ်အားလုံးကို မလုပ်ဆောင်ဘဲ စျေးကြီးသော တွက်ချက်မှုများကို လုပ်ဆောင်နိုင်သည့် သီးခြား JavaScript လုပ်ဆောင်မှု အကြောင်းအရာတစ်ခုဖြစ်သည်။ ဘရောက်ဆာ ရုပ်ပုံလုပ်ဆောင်ခြင်းအတွက်၊ ဆိုလိုသည်မှာ မော်ဒယ်ထည့်သွင်းမှုနှင့် ကောက်ချက်ချမှုသည် ခလုတ်များ၊ တိုးတက်မှုမက်ဆေ့ချ်များ၊ ဘရပ်ရှထည့်သွင်းမှုနှင့် မျက်နှာပြင်အပ်ဒိတ်များအတွက် တာဝန်ရှိသော အပ်ဒိတ်များအတွက် တာဝန်ရှိသည့် အပ်ဒိတ်များနှင့် ဝေးကွာသွားနိုင်သည်။

ရလဒ်သည် “အခမဲ့နောက်ခံလုပ်ဆောင်ခြင်း” မဟုတ်ပါ။ တူညီသောကိရိယာသည် တွက်ချက်မှုကို လုပ်ဆောင်ပြီး မှတ်ဉာဏ်ကို အသုံးပြုဆဲဖြစ်သည်။ ဗိသုကာဆိုင်ရာ အကျိုးကျေးဇူးမှာ ခြားနားခြင်းဖြစ်သည်- လေးလံသော မော်ဒယ်လုပ်ဆောင်ချက်သည် ၎င်းလည်ပတ်နေချိန်တွင် အင်တာဖေ့စ်တုံ့ပြန်မှုတိုင်းကို ပိတ်ဆို့နိုင်ခြေနည်းပါသည်။

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

ဘရောင်ဇာစာမျက်နှာသည် ပုံမှန်အားဖြင့် ပင်မစာတွဲပေါ်တွင် JavaScript ကို လုပ်ဆောင်သည်။ ထိုချည်မျှင်သည် အပြင်အဆင်၊ ပန်းချီနှင့် ထည့်သွင်းမှုကိုလည်း ညှိနှိုင်းပေးပါသည်။ အချိန်အတော်ကြာ တွက်ချက်မှုတစ်ခုက ၎င်းကို သိမ်းပိုက်ပါက ကလစ်များသည် နှောင့်နှေးသွားသည်ဟု ခံစားရနိုင်ပြီး အန်နီမေးရှင်း ရပ်တန့်သွားနိုင်ကာ စာမျက်နှာသည် တုံ့ပြန်မှုမရှိတော့ကြောင်း ဘရောက်ဆာက သတိပေးနိုင်သည်။

ကောက်ချက်မချမီ ပုံတည်းဖြတ်သူသည် ပင်မစာတွဲတာဝန်များစွာ ရှိသည်-

အမျိုးအစားခွဲခြင်းပုံစံတစ်ခု၏ ကိန်းဂဏာန်းအလုပ်အား တူညီသောချည်မျှင်ပေါ်တွင် တင်ခြင်းသည် ထိုတာဝန်များကို တိုက်ရိုက်ယှဉ်ပြိုင်စေမည်ဖြစ်သည်။ အလုပ်သမားတစ်ဦးသည် ပိုမိုရှင်းလင်းသော နယ်နိမိတ်တစ်ခုကို ဖန်တီးသည်။

သတင်းစကားအခြေခံ ပိုင်းခြားခြင်း။

အယ်ဒီတာနှင့် အလုပ်သမားသည် သာမန်ကိန်းရှင်များကို မမျှဝေပါ။ မက်ဆေ့ခ်ျပို့ခြင်းဖြင့် ဆက်သွယ်ကြသည်။ ရိုးရှင်းသော စီးဆင်းမှုသည် ဤကဲ့သို့ ဖြစ်သည်-

  1. တည်းဖြတ်သူသည် အလုပ်သမားတစ်ဦးကို ဖန်တီး သို့မဟုတ် ပြန်လည်အသုံးပြုသည်။
  2. ၎င်းသည် ကောက်ချက်ချသည့်အချိန်နှင့် မော်ဒယ်ကို စတင်ရန် အလုပ်သမားအား တောင်းဆိုသည်။
  3. ၎င်းသည် ရုပ်ပုံဒေတာကို ပြင်ဆင်ပြီး အနုမာနတောင်းဆိုချက်တစ်ခု ပေးပို့သည်။
  4. အလုပ်သမားသည် ဒေတာကို မော်ဒယ်၏ မျှော်လင့်ထားသည့် ထည့်သွင်းမှုအဖြစ်သို့ ပြောင်းသည်။
  5. အလုပ်သမားသည် မော်ဒယ်ကို လုပ်ဆောင်ပြီး မျက်နှာဖုံးတန်ဖိုးများကို ထုတ်လုပ်သည်။
  6. ၎င်းသည် မျက်နှာဖုံး သို့မဟုတ် ရလဒ်ဒေတာကို ပြန်လည်ပေးပို့သည်။
  7. တည်းဖြတ်သူသည် အကြိုကြည့်ရှုမှုကို ပေါင်းစပ်ပြီး သန့်စင်မှု သို့မဟုတ် ထုတ်ယူမှုကို လုပ်ဆောင်သည်။

မက်ဆေ့ဂျ်များတွင် မှန်ကန်သောတောင်းဆိုချက်ကို တုံ့ပြန်ရန်အတွက် လုံလောက်သောအကြောင်းအရာပါဝင်သင့်သည်။ ယခင်အလုပ်မပြီးမီ အသုံးပြုသူတစ်ဦးမှ အခြားပုံတစ်ပုံကို ရွေးချယ်ပါက အရေးကြီးပါသည်။ အင်တာဖေ့စ်သည် အရင်းအမြစ်အသစ်တစ်ခုပေါ်တွင် ရလဒ်ဟောင်းကို ပြသခြင်းကို ရှောင်ကြဉ်ရပါမည်။

ပုံဒေတာကို ကူးယူခြင်းနှင့် လွှဲပြောင်းခြင်း။

စာတိုလေးတစ်စောင် ပို့တာက စျေးပေါတယ်။ ဘရောက်ဆာသည် ကြားခံတစ်ခုလုံးကို ကူးယူထားလျှင် သန်းပေါင်းများစွာသော pixel တန်ဖိုးများကို ပေးပို့ခြင်းသည် စျေးကြီးနိုင်ပါသည်။ ဝဘ် API များသည် အချို့သော binary ကြားခံများ၏ ပိုင်ဆိုင်မှုကို ၎င်းအစား လွှဲပြောင်းနိုင်သည်။ ပေးပို့သူဘက်တွင် အသုံးပြုနိုင်သော မိတ္တူကို မထိန်းသိမ်းဘဲ လွှဲပြောင်းထားသော ကြားခံတစ်ခုအား လက်ခံရရှိသူထံ ရရှိနိုင်မည်ဖြစ်သည်။

ထိုသို့ ပိုမိုကောင်းမွန်အောင်ပြုလုပ်ခြင်းသည် ဒီဇိုင်းကန့်သတ်ချက်တစ်ခုဖြင့် လာပါသည်- လွှဲပြောင်းပြီးနောက်၊ ပေးပို့သူသည် ဒေတာကို ပိုင်ဆိုင်ဆဲကဲ့သို့ တူညီသည့်ကြားခံကို ဆက်လက်အသုံးပြု၍မရပါ။ တည်းဖြတ်သူသည် သီးခြားပြသမှုကိုယ်စားပြုမှုကို ထိန်းသိမ်းထားနိုင်သည်၊ သီးသန့်အနုမာနကြားခံတစ်ခုကို ဖန်တီးနိုင်သည် သို့မဟုတ် ၎င်းသည် နောက်ပိုင်းတွင် လိုအပ်သောအရာများကို ပြန်လည်တည်ဆောက်နိုင်သည်။

အကောင်အထည်ဖော်မှုတိုင်းသည် တူညီသောနေရာများတွင် လွှဲပြောင်းခြင်းကို အသုံးမပြုပါ။ ယေဘူယျသင်ခန်းစာမှာ thread ခွဲခြားခြင်းသည် data လှုပ်ရှားမှုကို ပျောက်ကွယ်သွားအောင် မလုပ်ခြင်းပင်ဖြစ်သည်။ ရုပ်ပုံအတိုင်းအတာ၊ ကြားခံအရွယ်အစားနှင့် ပြောင်းလဲခြင်းအရေအတွက်တို့သည် latency နှင့် memory ကို သက်ရောက်မှုရှိနေဆဲဖြစ်သည်။

Easy Background Remover က အလုပ်သမားကို ဘာထည့်တာလဲ။

Easy Background Remover သည် စက်ပေါ်ရှိ အပိုင်းခွဲခြင်းအတွက် ဘရောက်ဆာ အနုအရင့် runtime ပါရှိသော Web Worker ကို အသုံးပြုပါသည်။ လေးလံသော အလိုအလျောက်ဖြတ်တောက်မှုအဆင့်သည် မျက်နှာဖုံးကို ထုတ်လုပ်သည်။ ထို့နောက် တည်းဖြတ်သူသည် ပေါင်းစပ်ထားသော ရလဒ်ကို ပြသပြီး CPU-ကင်းဗတ်စ စုတ်တံ သန့်စင်မှုကို ပံ့ပိုးပေးသည်။

ဤခွဲထွက်ခြင်းသည် ကျရှုံးမှုများကို ပိုမိုအသုံးဝင်သော နယ်နိမိတ်တစ်ခု ဖြစ်စေသည်။ အကယ်၍ အလုပ်သမားသည် ကောက်ချက်ချနေစဉ်အတွင်း အစပြု၍မရပါက သို့မဟုတ် ပျက်သွားပါက၊ တစ်ခုတည်းသော အချက်ပြမှုအဖြစ် အမြဲတမ်း အေးခဲနေသော တက်ဘ်ကို အားကိုးမည့်အစား အင်တာဖေ့စ်သည် အလုပ်သမားနှင့်ဆိုင်သော အမှားအယွင်းတစ်ခုကို အစီရင်ခံနိုင်ပါသည်။

၎င်းသည် ဒေသတွင်း စီမံဆောင်ရွက်နေသည့် အရေးဆိုမှုကိုလည်း နားလည်နိုင်စေသည်။ တိုးချဲ့စာမျက်နှာမှ ၎င်း၏ကိုယ်ပိုင်လုပ်သားထံ ပစ်ဆယ်များကို ပေးပို့ခြင်းသည် အဝေးထိန်းဖြတ်တောက်ခြင်း API သို့ အပ်လုဒ်တင်ခြင်းမဟုတ်ဘဲ ဘရောက်ဆာပတ်ဝန်းကျင်အတွင်း ဆက်သွယ်မှုဖြစ်သည်။ ပထမစက်ရှင်သည် ပြန်သုံးနိုင်သော မော်ဒယ်ပိုင်ဆိုင်မှုကို သီးခြားဒေါင်းလုဒ်လုပ်နိုင်သည်။ အဘယ်ကြောင့် ပထမဦးစွာ မော်ဒယ်ကို ဒေါင်းလုဒ်လုပ်သနည်း ကိုကြည့်ပါ။

အလုပ်သမားတစ်ဦးသည် တွက်ချက်မှုကို ချက်ချင်းမပြုလုပ်ပါ။

လုပ်သားများသည် ကုန်ကြမ်းပစ္စည်းများမဟုတ်ဘဲ တုံ့ပြန်နိုင်စွမ်းကို တိုးတက်စေသည်။ မော်ဒယ်သည် ဘရောက်ဆာပေးစွမ်းနိုင်သည်နှင့်အညီ CPU၊ GPU သို့မဟုတ် အခြား runtime ရင်းမြစ်များကို သုံးစွဲဆဲဖြစ်သည်။ ကြီးမားသောထည့်သွင်းမှုတစ်ခုသည် ပိုကြာနိုင်ပြီး သေးငယ်သည့်အရာထက် မမ်မိုရီပိုမိုလိုအပ်ပါသည်။

ကန့်သတ်ချက်များစွာ ကျန်ရှိနေသည်-

ပုံငါးပုံအတွက် စုံစုံလုပ်သားငါးဦးကို စတင်ခြင်းသည် အလိုအလျောက် ငါးဆပိုမြန်သည်မဟုတ်ပါ။ အလုပ်သမားတွေက တူညီတဲ့စက်ကို မျှဝေကြပါတယ်။ အပြိုင်အလုပ်များသည် memory bandwidth နှင့် execution အရင်းအမြစ်များအတွက် ပြိုင်ဆိုင်နိုင်သော်လည်း model instance တစ်ခုစီသည် ၎င်း၏ကိုယ်ပိုင် memory cost ကို သယ်ဆောင်နိုင်ပါသည်။

တိုးတက်မှုအစီရင်ခံခြင်းသည် ပူးပေါင်းလုပ်ဆောင်သည်။

အလုပ်သမားတစ်ဦးသည် အခြေအနေပေးစာများကို ပေးပို့နိုင်သော်လည်း မည်သည့်တိုးတက်မှုရာခိုင်နှုန်းသည် တိကျမည်ဟု အလိုအလျောက်မသိနိုင်ပါ။ မော်ဒယ်ဒေါင်းလုဒ်ဆွဲခြင်း၊ runtime အစပြုခြင်း၊ ထည့်သွင်းပြင်ဆင်ခြင်း၊ ကောက်ချက်ချခြင်း၊ မျက်နှာဖုံးအသွင်ပြောင်းခြင်းနှင့် အစမ်းကြည့်ရှုခြင်း တင်ဆက်ခြင်းတို့သည် မတူညီသောအချိန်နှင့် သီးခြားအဆင့်များဖြစ်သည်။

အချို့အဆင့်များတွင် တိုင်းတာနိုင်သော ဘိုက်အရေအတွက်များရှိသည်။ မော်ဒယ်လုပ်ဆောင်မှုတစ်ခုသည် “စတင်သည်” နှင့် “ပြီးဆုံးသည်” တို့ကိုသာ ဖော်ထုတ်နိုင်သည်။ အချိုးညီညီ တိုးတက်လာသော ချောမွေ့သော ရာခိုင်နှုန်းသည် တိကျသော တိုင်းတာမှုထက် အလှကုန် ဖြစ်နိုင်သည်။

အသုံးဝင်သောတိုးတက်မှု UI သည် ဖြစ်နိုင်သည့်အခါ အဆင့်ကို အမည်ပေးသည်- မော်ဒယ်ပြင်ဆင်ခြင်း၊ လုပ်ဆောင်နေသည့် ပုံ သို့မဟုတ် တည်ဆောက်မှုရလဒ်။ ၎င်းသည် ရှင်းလင်းချက်မရှိဘဲ spinner ကိုချန်ထားမည့်အစား ပျက်ကွက်ခြင်းနှင့် ပယ်ဖျက်ခြင်းတို့ကိုလည်း ဆောင်ရွက်ပေးသည်။

ပယ်ဖျက်ခြင်းသည် spinner ကို ဖုံးကွယ်ခြင်းထက် ပိုပါသည်။

အသုံးပြုသူသည် ပုံတစ်ပုံကို ပိတ်ခြင်း သို့မဟုတ် ပြန်လည်စတင်ပါက၊ အင်တာဖေ့စ်သည် ခေတ်မမီတော့သော တောင်းဆိုမှုမှ နောက်ဆုံးတုံ့ပြန်မှုကို လျစ်လျူရှုနိုင်သည်။ အရင်းခံတွက်ချက်မှုအား ချက်ချင်းရပ်လိုက်ခြင်းဖြင့် runtime သို့မဟုတ် အလုပ်သမားကို ရပ်စဲပြီး ပြန်လည်ဖန်တီးခြင်းမှ ထပ်လောင်းပံ့ပိုးမှု လိုအပ်နိုင်သည်။

အလုပ်သမားတစ်ဦးကို အလုပ်မှရပ်စဲခြင်းသည် ပြတ်ပြတ်သားသားဖြစ်သော်လည်း ၎င်းသည် ၎င်း၏ကနဦးအခြေအနေအား ဖျက်သိမ်းသည်။ နောက်အလုပ်တစ်ခုသည် မော်ဒယ်ကို ပြန်လည်စတင်ရန်နှင့် ထပ်မံလုပ်ဆောင်ရန် လိုအပ်နိုင်သည်။ တိုတောင်းသော လည်ပတ်မှုတစ်ခုအတွက်၊ ရလဒ်ပျက်သွားခြင်းကို အမှတ်အသားပြုခြင်းသည် အရာအားလုံးကို ဖြိုဖျက်ခြင်းထက် စျေးသက်သာပါသည်။

မှန်ကန်သောရွေးချယ်မှုသည် မှတ်ဉာဏ်ဖိအား၊ လုပ်ဆောင်ချက်ကြာချိန်နှင့် runtime စွမ်းရည်တို့အပေါ် မူတည်သည်။ အသုံးပြုသူ၏ရှုထောင့်မှကြည့်လျှင် အရေးကြီးသောစည်းမျဉ်းမှာ stale အလုပ်သည် လက်ရှိတည်းဖြတ်မှုကို ထပ်မရေးရပါ။

အမှားများသည် နယ်နိမိတ်ကို ဖြတ်ကျော်ရန် လိုအပ်ပါသည်။

အလုပ်သမားတစ်ဦးအတွင်း ခြွင်းချက်တစ်ခုသည် သာမန်ပင်မကြိုးချွင်းချက်တစ်ခု ဖြစ်လာမည်မဟုတ်ပါ။ အလုပ်သမားသည် အသုံးပြုနိုင်သော အမှားအယွင်းများကို အစီရင်ခံရပါမည်။

ကောင်းမွန်သော အမှားအယွင်းကို ကိုင်တွယ်ခြင်းသည် အနည်းဆုံး ခွဲခြားနိုင်သည်-

အထူးသဖြင့် ပထမဦးစွာလုပ်ဆောင်သော စနစ်ထည့်သွင်းခြင်းနှင့် ပုံမှန်ရုပ်ပုံလုပ်ဆောင်ခြင်းတွင် ကွဲပြားခြားနားသော ကုထုံးများရှိသည့်အခါ ယေဘုယျ “တစ်ခုခုမှားသွားသည်” ထက် ၎င်းသည် လုပ်ဆောင်နိုင်သည်ထက် ပိုမိုလုပ်ဆောင်နိုင်သည်။

အလုပ်သမားအထွက်နှုန်းသည် ပထမမျက်နှာဖုံးတစ်ခုသာ ဖြစ်သေးသည်။

ချည်တည်ဆောက်ပုံသည် ရှုပ်ထွေးသော အစွန်းတစ်ခုကို သူ့ဘာသာသူ မတိုးတက်ပါ။ အလုပ်သမားသည် သားမွေးများ၊ ဖောက်ထွင်းမြင်ရသော ပစ္စည်း၊ ကျဉ်းမြောင်းသော ကြိုးများ သို့မဟုတ် လိုချင်သောအရိပ်ကို လွတ်သွားသည့် နည်းပညာအရ တရားဝင်သော မျက်နှာဖုံးကို ပြန်ပေးနိုင်သည်။ အဲဒါတွေက ခွဲခြမ်းစိတ်ဖြာပြီး ရည်ရွယ်ချက်ရှိတဲ့ မေးခွန်းတွေပါ။

တည်းဖြတ်သူ၏အလုပ်သည် ကောက်ချက်ချပြီးနောက် ပြန်လည်စတင်သည်- မျက်နှာဖုံးကို အလုပ်လုပ်သော သြဒီနိတ်စနစ်သို့ အတိုင်းအတာ၊ အကြိုကြည့်ရှုမှုကို ပေါင်းစပ်ပါ၊ အသုံးပြုသူကို ၎င်းအား ပြန်လည်ပြင်ဆင်ခွင့်ပြုရန်နှင့် လက်ရှိအခြေအနေကို ထုတ်ယူပါ။ Mask resolution vs preview size သည် အဆိုပါ သြဒီနိတ်စနစ်များကို အဘယ်ကြောင့် မရှုပ်ထွေးသင့်ကြောင်း ရှင်းပြသည်။

ကျစ်ကျစ်လျစ်လျစ်သော စိတ်ပိုင်းဆိုင်ရာပုံစံ

အလုပ်သမားအား မက်ဆေ့ချ်ပြတင်းပေါက်နောက်ကွယ်မှ ဒေသခံ အထူးကျွမ်းကျင်သူတစ်ဦးအဖြစ် စဉ်းစားကြည့်ပါ-

မော်ဒယ်၏ pixels များကို ၎င်းတို့ကိုယ်တိုင်ကြည့်ရှုရန်အတွက်၊ စက်ပေါ်ရှိ cutout မော်ဒယ်မြင်ရသည့်အရာ ဖြင့် ဆက်လက်လုပ်ဆောင်ပါ။ အဆုံးမှအဆုံး လက်တွေ့ကျသော ခြုံငုံသုံးသပ်ချက်အတွက်၊ ဒေသခံ နောက်ခံ ဖယ်ရှားခြင်း လုပ်ဆောင်ပုံ ကို ကြည့်ပါ။

ဆက်လေ့လာပါ။

စိတ်ဝင်စားစရာ