ສ່ວນຂະຫຍາຍ Chrome ຟຣີ — ຕັດອອກໃນອຸປະກອນ

ພື້ນຖານການປະມວນຜົນຮູບພາບຂອງ Web Worker

Web Worker ແມ່ນບໍລິບົດການປະຕິບັດ JavaScript ແຍກຕ່າງຫາກທີ່ສາມາດປະຕິບັດການຄິດໄລ່ລາຄາແພງໂດຍບໍ່ຕ້ອງເຮັດໃຫ້ຫົວຂໍ້ຕົ້ນຕໍຂອງບັນນາທິການເຮັດວຽກທັງຫມົດ. ສໍາລັບການປະມວນຜົນຮູບພາບຂອງຕົວທ່ອງເວັບ, ນັ້ນຫມາຍຄວາມວ່າການຕິດຕັ້ງແບບຈໍາລອງແລະການ inference ສາມາດແລ່ນຫນີຈາກກະທູ້ທີ່ຮັບຜິດຊອບສໍາລັບປຸ່ມ, ຂໍ້ຄວາມຄວາມຄືບຫນ້າ, ການປ້ອນຂໍ້ມູນແປງ, ແລະການປັບປຸງຫນ້າຈໍ.

ຜົນໄດ້ຮັບບໍ່ແມ່ນ “ການປຸງແຕ່ງພື້ນຖານຟຣີ.” ອຸປະກອນດຽວກັນຍັງປະຕິບັດການຄິດໄລ່ແລະໃຊ້ຫນ່ວຍຄວາມຈໍາ. ຜົນປະໂຫຍດທາງສະຖາປັດຕະຍະກໍາແມ່ນການແຍກອອກ: ການປະຕິບັດແບບຈໍາລອງທີ່ຫນັກແຫນ້ນແມ່ນຫນ້ອຍທີ່ຈະຂັດຂວາງທຸກໆການໂຕ້ຕອບຂອງການໂຕ້ຕອບໃນຂະນະທີ່ມັນແລ່ນ.

ກະທູ້ຫຼັກມີວຽກໃນການໂຕ້ຕອບຜູ້ໃຊ້

ໜ້າບຣາວເຊີປົກກະຕິຈະແລ່ນ JavaScript ໃນຫົວຂໍ້ຫຼັກ. ກະທູ້ນັ້ນຍັງປະສານງານການຈັດວາງ, ການທາສີ, ແລະການປ້ອນຂໍ້ມູນ. ຖ້າການຄິດໄລ່ຍາວຫນຶ່ງຄອບຄອງມັນ, ການຄລິກອາດຈະຮູ້ສຶກຊັກຊ້າ, ການເຄື່ອນໄຫວສາມາດຢຸດໄດ້, ແລະຕົວທ່ອງເວັບອາດຈະເຕືອນວ່າຫນ້າເວັບບໍ່ຕອບສະຫນອງ.

ບັນນາທິການຮູບພາບມີໜ້າທີ່ຮັບຜິດຊອບຫຼັກຂອງກະທູ້ຫຼາຍຢ່າງ ກ່ອນທີ່ຈະເລີ່ມການສົມມຸດຖານ:

ການວາງການເຮັດວຽກຕົວເລກຂອງຕົວແບບການແບ່ງສ່ວນຢູ່ໃນຫົວຂໍ້ດຽວກັນຈະເຮັດໃຫ້ວຽກງານເຫຼົ່ານັ້ນແຂ່ງຂັນໂດຍກົງ. ພະນັກງານສ້າງຂອບເຂດທີ່ຊັດເຈນກວ່າ.

ຂອບເຂດທີ່ອີງໃສ່ຂໍ້ຄວາມ

ບັນນາທິການແລະພະນັກງານບໍ່ໄດ້ແບ່ງປັນຕົວແປທໍາມະດາ. ພວກເຂົາເຈົ້າຕິດຕໍ່ສື່ສານໂດຍການສົ່ງຂໍ້ຄວາມ. ການໄຫຼເຂົ້າທີ່ງ່າຍດາຍເບິ່ງຄືວ່ານີ້:

  1. ບັນນາທິການສ້າງຫຼືໃຊ້ຄືນພະນັກງານ.
  2. ມັນຂໍໃຫ້ຜູ້ອອກແຮງງານຕັ້ງຕົ້ນເວລາແລ່ນ inference ແລະຕົວແບບ.
  3. ມັນກະກຽມຂໍ້ມູນຮູບພາບແລະສົ່ງຄໍາຮ້ອງຂໍ inference.
  4. ພະນັກງານແປງຂໍ້ມູນເຂົ້າໄປໃນວັດສະດຸປ້ອນທີ່ຄາດໄວ້ຂອງຕົວແບບ.
  5. ພະນັກງານດໍາເນີນການແບບຈໍາລອງແລະຜະລິດມູນຄ່າຫນ້າກາກ.
  6. ມັນສົ່ງຫນ້າກາກຫຼືຂໍ້ມູນຜົນໄດ້ຮັບກັບຄືນໄປບ່ອນ.
  7. ບັນນາທິການປະກອບການສະແດງຕົວຢ່າງ ແລະເປີດໃຊ້ການປັບປ່ຽນ ຫຼືສົ່ງອອກ.

ຂໍ້ຄວາມຄວນມີບໍລິບົດພຽງພໍເພື່ອໃຫ້ກົງກັບຄໍາຕອບກັບຄໍາຮ້ອງຂໍທີ່ຖືກຕ້ອງ. ນີ້ເປັນເລື່ອງສໍາຄັນຖ້າຜູ້ໃຊ້ເລືອກຮູບພາບອື່ນກ່ອນທີ່ວຽກກ່ອນຫນ້າຈະສໍາເລັດ. ການໂຕ້ຕອບຕ້ອງຫຼີກເວັ້ນການສະແດງຜົນໄດ້ຮັບເກົ່າຜ່ານແຫຼ່ງໃຫມ່.

ການຄັດລອກແລະໂອນຂໍ້ມູນຮູບພາບ

ການສົ່ງຂໍ້ຄວາມຂະຫນາດນ້ອຍແມ່ນລາຄາຖືກ. ການສົ່ງຄ່າຫຼາຍລ້ານ pixels ສາມາດມີລາຄາແພງຖ້າຕົວທ່ອງເວັບຕ້ອງຄັດລອກ buffer ທັງຫມົດ. Web APIs ສາມາດໂອນກຳມະສິດຂອງ binary buffers ບາງອັນແທນ. ບັຟເຟີທີ່ໂອນແລ້ວຈະສາມາດໃຊ້ໄດ້ກັບຜູ້ຮັບໂດຍບໍ່ໄດ້ເກັບຮັກສາຂໍ້ມູນຊໍ້າກັນທີ່ໃຊ້ໄດ້ຢູ່ຂ້າງຜູ້ສົ່ງ.

ການເພີ່ມປະສິດທິພາບນັ້ນມາພ້ອມກັບຂໍ້ຈໍາກັດໃນການອອກແບບ: ຫຼັງຈາກການໂອນຍ້າຍ, ຜູ້ສົ່ງບໍ່ສາມາດສືບຕໍ່ໃຊ້ buffer ດຽວກັນກັບວ່າມັນຍັງຄົງເປັນເຈົ້າຂອງຂໍ້ມູນ. ບັນນາທິການອາດຈະເກັບຮັກສາການສະແດງຜົນແຍກຕ່າງຫາກ, ສ້າງ buffer inference ສະເພາະ, ຫຼືສ້າງໃຫມ່ສິ່ງທີ່ມັນຕ້ອງການໃນພາຍຫຼັງ.

ບໍ່ແມ່ນທຸກໆການປະຕິບັດໃຊ້ການໂອນຍ້າຍໃນສະຖານທີ່ດຽວກັນ. ບົດຮຽນທົ່ວໄປແມ່ນວ່າການແຍກກະທູ້ບໍ່ໄດ້ເຮັດໃຫ້ການເຄື່ອນໄຫວຂໍ້ມູນຫາຍໄປ. ຂະໜາດຂອງຮູບ, ຂະໜາດບັຟເຟີ, ແລະຈຳນວນການແປງຍັງຄົງມີຜົນຕໍ່ກັບການຕອບສະໜອງ ແລະໜ່ວຍຄວາມຈຳ.

ສິ່ງທີ່ Easy Background Remover ເອົາໃສ່ໃນພະນັກງານ

Easy Background Remover ໃຊ້ Web Worker ທີ່ມີເວລາແລ່ນ inference ຂອງຕົວທ່ອງເວັບສໍາລັບການແບ່ງສ່ວນໃນອຸປະກອນ. ຂັ້ນຕອນການຕັດອັດຕະໂນມັດຢ່າງຮຸນແຮງຜະລິດຫນ້າກາກ. ຫຼັງຈາກນັ້ນ, ບັນນາທິການຈະສະແດງຜົນໄດ້ຮັບທີ່ປະກອບແລະສະຫນັບສະຫນູນການປັບປ່ຽນແປງຂອງ CPU-canvas.

ການແບ່ງແຍກນີ້ເຮັດໃຫ້ຄວາມລົ້ມເຫລວເປັນຂອບເຂດທີ່ເປັນປະໂຫຍດກວ່າ. ຖ້າຜູ້ອອກແຮງງານບໍ່ສາມາດເລີ່ມຕົ້ນຫຼືຂັດໃນລະຫວ່າງການ inference, ການໂຕ້ຕອບສາມາດລາຍງານຄວາມຜິດພາດທີ່ກ່ຽວຂ້ອງກັບພະນັກງານແທນທີ່ຈະອີງໃສ່ແຖບທີ່ແຊ່ແຂງຖາວອນເປັນສັນຍານດຽວເທົ່ານັ້ນ.

ມັນຍັງເຮັດໃຫ້ການຮ້ອງຂໍການປະມວນຜົນໃນທ້ອງຖິ່ນເຂົ້າໃຈໄດ້. ການສົ່ງ pixels ຈາກຫນ້າສ່ວນຂະຫຍາຍໄປຫາພະນັກງານຂອງຕົນເອງແມ່ນການສື່ສານພາຍໃນສະພາບແວດລ້ອມຂອງຕົວທ່ອງເວັບ, ບໍ່ແມ່ນການອັບໂຫລດໄປຍັງ API cutout ໄລຍະໄກ. ເຊດຊັນທຳອິດອາດຈະດາວໂຫຼດຊັບສິນແບບຈໍາລອງທີ່ໃຊ້ຄືນໄດ້ແຍກຕ່າງຫາກ; ເບິ່ງ ເປັນຫຍັງທຳອິດຈຶ່ງດາວໂຫລດຕົວແບບ.

ຄົນງານບໍ່ເຮັດການຄຳນວນທັນທີ

ພະນັກງານປັບປຸງການຕອບສະຫນອງ, ບໍ່ແມ່ນຄວາມສາມາດຂອງອຸປະກອນດິບ. ຮູບແບບດັ່ງກ່າວຍັງບໍລິໂພກ CPU, GPU ຫຼືຊັບພະຍາກອນ runtime ອື່ນໆຕາມສິ່ງທີ່ຕົວທ່ອງເວັບສາມາດສະຫນອງໄດ້. ການປ້ອນຂໍ້ມູນຂະໜາດໃຫຍ່ຍັງສາມາດໃຊ້ເວລາດົນກວ່າ ແລະຕ້ອງການຄວາມຈຳຫຼາຍກວ່າອັນນ້ອຍໆ.

ຂໍ້ຈຳກັດຫຼາຍອັນຍັງຄົງຢູ່:

ການເລີ່ມຕົ້ນຫ້າພະນັກງານ inference ສໍາລັບຫ້າຮູບພາບແມ່ນບໍ່ອັດຕະໂນມັດຫ້າເທົ່າໄວ. ຄົນງານໄດ້ໃຊ້ເຄື່ອງດຽວກັນ. ວຽກຂະຫນານສາມາດແຂ່ງຂັນສໍາລັບແບນວິດຂອງຫນ່ວຍຄວາມຈໍາແລະຊັບພະຍາກອນການປະຕິບັດ, ໃນຂະນະທີ່ແຕ່ລະຕົວແບບອາດມີຄ່າໃຊ້ຈ່າຍໃນຫນ່ວຍຄວາມຈໍາຂອງຕົນເອງ.

ການລາຍງານຄວາມຄືບໜ້າແມ່ນຮ່ວມມື

ພະນັກງານສາມາດສົ່ງຂໍ້ຄວາມສະຖານະໄດ້, ແຕ່ມັນບໍ່ຮູ້ອັດຕະໂນມັດວ່າອັດຕາສ່ວນຄວາມຄືບຫນ້າຈະມີຄວາມຮູ້ສຶກຖືກຕ້ອງ. ການດາວໂຫຼດແບບຈໍາລອງ, ການເລີ່ມຕົ້ນເວລາແລ່ນ, ການກະກຽມການປ້ອນຂໍ້ມູນ, ການອ້າງອີງ, ການແປງໜ້າກາກ, ແລະການສະແດງຕົວຢ່າງແມ່ນໄລຍະແຍກຕ່າງຫາກທີ່ມີເວລາທີ່ແຕກຕ່າງກັນ.

ບາງໄລຍະມີການນັບໄບຕ໌ທີ່ສາມາດວັດແທກໄດ້. ການປະຕິບັດແບບຈໍາລອງດຽວອາດຈະເປີດເຜີຍພຽງແຕ່ “ເລີ່ມຕົ້ນ” ແລະ “ສໍາເລັດ.” ອັດຕາສ່ວນທີ່ລຽບງ່າຍທີ່ກ້າວຫນ້າເທົ່າທຽມກັນສາມາດເປັນເຄື່ອງສໍາອາງແທນທີ່ຈະເປັນການວັດແທກທີ່ຊັດເຈນ.

ຄວາມຄືບຫນ້າທີ່ເປັນປະໂຫຍດ UI ຕັ້ງຊື່ໄລຍະທີ່ເປັນໄປໄດ້: ການກະກຽມຮູບແບບ, ຮູບພາບການປຸງແຕ່ງ, ຫຼືຜົນໄດ້ຮັບການກໍ່ສ້າງ. ມັນຍັງຈັດການກັບຄວາມລົ້ມເຫລວແລະການຍົກເລີກແທນທີ່ຈະປ່ອຍໃຫ້ spinner ທີ່ບໍ່ມີຄໍາອະທິບາຍ.

ການຍົກເລີກແມ່ນຫຼາຍກວ່າການເຊື່ອງ spinner

ຖ້າຜູ້ໃຊ້ປິດຮູບພາບຫຼືເລີ່ມຕົ້ນໃຫມ່, ການໂຕ້ຕອບສາມາດລະເວັ້ນການຕອບສະຫນອງໃນທີ່ສຸດຈາກການຮ້ອງຂໍທີ່ລ້າສະໄຫມ. ການຢຸດເຊົາການຄິດໄລ່ພື້ນຖານໃນທັນທີອາດຈະຕ້ອງການການສະຫນັບສະຫນູນເພີ່ມເຕີມຈາກ runtime ຫຼືການຢຸດເຊົາແລະການສ້າງພະນັກງານໃຫມ່.

ການຢຸດເຊົາພະນັກງານແມ່ນການຕັດສິນໃຈ, ແຕ່ມັນຍົກເລີກສະຖານະເບື້ອງຕົ້ນຂອງມັນ. ວຽກຕໍ່ໄປອາດຈະຈໍາເປັນຕ້ອງໄດ້ໂຫລດແລະເລີ່ມຕົ້ນຮູບແບບອີກເທື່ອຫນຶ່ງ. ສໍາລັບການດໍາເນີນງານສັ້ນ, ການເຮັດເຄື່ອງຫມາຍ stale ຜົນໄດ້ຮັບສາມາດລາຄາຖືກກວ່າການທໍາລາຍທຸກສິ່ງທຸກຢ່າງ.

ທາງເລືອກທີ່ຖືກຕ້ອງແມ່ນຂຶ້ນກັບຄວາມກົດດັນຂອງຫນ່ວຍຄວາມຈໍາ, ໄລຍະເວລາການດໍາເນີນງານ, ແລະຄວາມສາມາດໃນການແລ່ນ. ຈາກທັດສະນະຂອງຜູ້ໃຊ້, ກົດລະບຽບທີ່ສໍາຄັນແມ່ນວ່າການເຮັດວຽກ stale ຈະຕ້ອງບໍ່ຂຽນທັບການແກ້ໄຂໃນປະຈຸບັນ.

ຄວາມຜິດພາດຕ້ອງຂ້າມແດນຄືກັນ

ຂໍ້ຍົກເວັ້ນພາຍໃນຄົນງານບໍ່ກາຍມາເປັນຂໍ້ຍົກເວັ້ນຂອງກະທູ້ຫຼັກປົກກະຕິ. ພະນັກງານຕ້ອງລາຍງານຄວາມຜິດພາດທີ່ສາມາດໃຊ້ໄດ້, ແລະບັນນາທິການຄວນຟັງຄວາມລົ້ມເຫລວໃນລະດັບພະນັກງານ.

ການ​ຈັດ​ການ​ຄວາມ​ຜິດ​ພາດ​ທີ່​ດີ​ຈໍາ​ແນກ​ຢ່າງ​ຫນ້ອຍ​:

ນີ້ແມ່ນການປະຕິບັດຫຼາຍກ່ວາ “ມີບາງຢ່າງຜິດພາດ”, ໂດຍສະເພາະໃນເວລາທີ່ການຕິດຕັ້ງຄັ້ງທໍາອິດແລະການປຸງແຕ່ງຮູບພາບປົກກະຕິມີວິທີແກ້ໄຂທີ່ແຕກຕ່າງກັນ.

ຜົນຜະລິດຂອງຜູ້ອອກແຮງງານຍັງເປັນພຽງແຕ່ຫນ້າກາກທໍາອິດ

ສະຖາປັດຕະຍະກໍາກະທູ້ບໍ່ໄດ້ປັບປຸງຂອບທີ່ບໍ່ຊັດເຈນດ້ວຍຕົວມັນເອງ. ພະນັກງານສາມາດກັບຄືນຫນ້າກາກທີ່ຖືກຕ້ອງທາງວິຊາການທີ່ຍັງຂາດຂົນ, ວັດສະດຸໂປ່ງໃສ, ສາຍແຄບ, ຫຼືເງົາທີ່ຕ້ອງການ. ເຫຼົ່ານີ້ແມ່ນການແບ່ງສ່ວນແລະຄໍາຖາມທີ່ຕັ້ງໃຈ.

ການເຮັດວຽກຂອງບັນນາທິການຈະກັບຄືນມາຫຼັງຈາກ inference: ຂະຫນາດຫນ້າກາກເຂົ້າໄປໃນລະບົບປະສານງານການເຮັດວຽກ, ປະກອບການເບິ່ງຕົວຢ່າງ, ໃຫ້ຜູ້ໃຊ້ປັບປຸງມັນ, ແລະສົ່ງອອກສະຖານະປະຈຸບັນ. ຄວາມລະອຽດໜ້າກາກທຽບກັບຂະໜາດຕົວຢ່າງ ອະທິບາຍວ່າເປັນຫຍັງລະບົບປະສານງານເຫຼົ່ານັ້ນບໍ່ຄວນສັບສົນ.

ຮູບແບບຈິດໃຈທີ່ຫຍໍ້

ຄິດວ່າຜູ້ອອກແຮງງານເປັນຜູ້ຊ່ຽວຊານໃນທ້ອງຖິ່ນທີ່ຢູ່ເບື້ອງຫຼັງປ່ອງຢ້ຽມຂໍ້ຄວາມ:

ສໍາລັບທັດສະນະຂອງຕົວແບບຂອງ pixels ຕົວມັນເອງ, ສືບຕໍ່ກັບ ສິ່ງທີ່ຕົວແບບ cutout ໃນອຸປະກອນເຫັນ. ສຳລັບພາບລວມພາກປະຕິບັດແບບຕົ້ນຫາປາຍ, ເບິ່ງ ການລຶບພື້ນຫຼັງຂອງທ້ອງຖິ່ນເຮັດວຽກແນວໃດ.

ສືບຕໍ່ສຳຫຼວດ

ຫນ້າສົນໃຈ