Grunnatriði í myndvinnslu Web Worker
Web Worker er sérstakt JavaScript framkvæmd samhengi sem getur framkvæmt dýra útreikninga án þess að láta aðalþráð ritstjórans vinna alla vinnuna. Fyrir myndvinnslu vafra þýðir það að líkanuppsetning og ályktun getur hlaupið í burtu frá þræðinum sem ber ábyrgð á hnöppum, framvinduskilaboðum, burstainnslætti og skjáuppfærslum.
Niðurstaðan er ekki „ókeypis bakgrunnsvinnsla“. Sama tæki framkvæmir enn útreikninginn og notar minni. Byggingarfræðilegur ávinningur er aðskilnaður: Minni líkur eru á að þung líkanaðgerð loki fyrir öll viðmótssvörun á meðan hún keyrir.
Aðalþráðurinn er með notendaviðmótsvinnu
Vafrasíða keyrir venjulega JavaScript á aðalþræði. Sá þráður samhæfir einnig útlit, málun og inntak. Ef einn langur útreikningur tekur það, gætu smellir fundist seinkaðir, hreyfimyndir geta stöðvast og vafrinn gæti varað við því að síðan svari ekki.
Myndaritill hefur nóg af meginþræðisskyldum áður en ályktun byrjar:
- fáðu val á skrá, límdu eða slepptu;
- afkóða og birta mynd;
- uppfærðu framvindu og villustöðu;
- teiknaðu forskoðunarstriginn;
- handfang Bæta við og eyða burstahreyfingu;
- undirbúa niðurhals- eða klemmuspjaldaðgerðir.
Með því að setja tölulega vinnu skiptingarlíkans á sama þráð myndi þessi verkefni keppa beint. Starfsmaður skapar skýrari mörk.
Skilaboðamiðuð mörk
Ritstjóri og starfsmaður deila ekki venjulegum breytum. Þeir hafa samskipti með því að senda skilaboð. Einfaldað flæði lítur svona út:
- Ritstjórinn býr til eða endurnotar starfsmann.
- Það biður starfsmanninn að frumstilla ályktunartímann og líkanið.
- Það undirbýr myndgögn og sendir ályktunarbeiðni.
- Starfsmaðurinn breytir gögnunum í væntanlegt inntak líkansins.
- Starfsmaðurinn keyrir líkanið og framleiðir grímugildi.
- Það sendir grímuna eða niðurstöðugögnin til baka.
- Ritstjórinn setur saman forskoðunina og gerir betrumbætur eða útflutning kleift.
Skilaboð ættu að innihalda nægilegt samhengi til að passa við svar við réttri beiðni. Þetta skiptir máli ef notandi velur aðra mynd áður en fyrra verkinu lýkur. Viðmótið verður að forðast að sýna gamla niðurstöðu yfir nýjan uppruna.
Afrita og flytja myndgögn
Það er ódýrt að senda smá textaskilaboð. Það getur verið dýrt að senda milljónir pixlagilda ef vafrinn þarf að afrita allan biðminni. Vef API geta flutt eignarhald á ákveðnum tvöfaldur biðminni í staðinn. Fluttur biðminni verður aðgengilegur viðtakanda án þess að halda nothæfri afrit á sendandahlið.
Þessari hagræðingu fylgir hönnunarþvingun: eftir flutning getur sendandinn ekki haldið áfram að nota sama biðminni eins og hann eigi enn gögnin. Ritstjóri getur haldið sérstakri birtingarmynd, búið til sérstaka ályktunarbuffi eða endurbyggt það sem hann þarf síðar.
Ekki er hver útfærsla sem notar flutning á nákvæmlega sömu stöðum. Almennur lærdómur er sá að þráðaaðskilnaður lætur ekki gagnaflutning hverfa. Stærð myndar, biðminni og fjöldi viðskipta hafa enn áhrif á leynd og minni.
Hvað Easy Background Remover setur í vinnumanninn
Easy Background Remover notar Web Worker með ályktunartíma vafra fyrir skiptingu í tæki. Þunga sjálfvirka klippiþrepið framleiðir grímu. Ritstjórinn sýnir síðan samsettu niðurstöðuna og styður fínpússingu á CPU-striga bursta.
Þessi aðskilnaður gefur mistökum gagnlegri mörk. Ef starfsmaður getur ekki frumstillt eða hrynur meðan á ályktun stendur, getur viðmótið tilkynnt um starfsmannstengda villu í stað þess að treysta á varanlega frosinn flipa sem eina merkið.
Það heldur einnig staðbundinni vinnslu kröfu skiljanlegri. Að senda pixla frá viðbyggingarsíðu til eigin starfsmanns eru samskipti innan vafraumhverfisins, ekki upphleðsla á fjarstýrð forritaskil. Fyrsta lotan getur hlaðið niður endurnýtanlegu líkanaeigninni sérstaklega; sjá Af hverju fyrst að keyra hleður niður líkani.
Starfsmaður gerir ekki útreikninga strax
Starfsmenn bæta viðbragðshæfileika, ekki hráa tækifærni. Líkanið eyðir samt örgjörva, GPU eða öðrum afturkreistingum í samræmi við það sem vafrinn getur veitt. Stórt inntak getur samt tekið lengri tíma og krafist meira minnis en lítið.
Nokkur takmörk eru eftir:
- frumstilling líkans hefur raunverulegan kostnað;
- pixla biðminni taka minni á báðum hliðum ef afritað er;
- að breyta stærð og breyta sniði taka tíma;
- tæki með lítið minni gætu átt í erfiðleikum með stórar myndir;
- fleiri starfsmenn geta aukið deilu í stað þess að draga úr þeim;
- útflutningur og uppfærslur á striga geta enn falið í sér aðalþráðinn.
Það er ekki sjálfkrafa fimmfalt hraðar að hefja fimm ályktunarstarfsmenn fyrir fimm myndir. Starfsmennirnir deila sömu vélinni. Samhliða störf geta keppt um minnisbandbreidd og framkvæmdarauðlindir, á meðan hvert líkanstilvik getur borið sinn eigin minniskostnað.
Framfaraskýrslur eru samvinnuþýðar
Starfsmaður getur sent stöðuskilaboð, en hann veit ekki sjálfkrafa hvaða framvinduprósenta mun líða rétt. Niðurhal líkana, frumstilling á keyrslutíma, undirbúningur inntaks, ályktun, grímubreyting og forskoðunarflutningur eru aðskildir áfangar með mismunandi tímasetningu.
Sumir áfangar eru með mælanlega bætafjölda. Framkvæmd með einni gerð getur aðeins afhjúpað „byrjað“ og „lokið“. Slétt prósenta sem fer jafnt fram getur því verið snyrtivörur frekar en nákvæm mæling.
Gagnlegar framfarir notendaviðmót nefnir áfangann þegar mögulegt er: að undirbúa líkan, vinna úr mynd eða byggja niðurstöðu. Það sér einnig um bilun og afpöntun í stað þess að skilja eftir spuna án skýringa.
Afpöntun er meira en að fela snúning
Ef notandinn lokar mynd eða byrjar upp á nýtt getur viðmótið hunsað endanlegt svar frá úreltri beiðni. Að stöðva undirliggjandi útreikning strax gæti þurft viðbótarstuðning frá keyrslutíma eða að hætta og endurskapa starfsmanninn.
Það er afgerandi að segja upp starfsmanni, en það eyðir upphaflegu ástandi hans. Næsta verk gæti þurft að hlaða og frumstilla líkanið aftur. Fyrir stutta aðgerð getur það verið ódýrara að merkja útkomuna gömul en að rífa allt niður.
Rétt val fer eftir minnisþrýstingi, notkunartíma og keyrslugetu. Frá sjónarhóli notandans er mikilvæga reglan sú að gömul vinna má ekki skrifa yfir núverandi breytingu.
Villur þurfa líka að fara yfir mörkin
Undantekning innan starfsmanns verður ekki eðlileg aðalþráðarundantekning. Starfsmaðurinn verður að tilkynna nothæfar villur og ritstjórinn ætti að hlusta á mistök á starfsmannsstigi.
Góð villumeðferð greinir að minnsta kosti:
- fyrirmyndareign ekki tiltæk;
- frumstilling líkans mistókst;
- myndafkóðun eða undirbúningur inntaks mistókst;
- ályktun mistókst;
- starfsmaður hætti óvænt;
- Niðurstaðan tilheyrir ekki lengur núverandi beiðni.
Þetta er meira aðgerðarhæft en almennt „eitthvað fór úrskeiðis,“ sérstaklega þegar fyrstu uppsetningu og venjuleg myndvinnsla hafa mismunandi úrræði.
Framleiðsla starfsmanna er enn aðeins fyrsta gríma
Þráðararkitektúr bætir ekki óljósan brún út af fyrir sig. Starfsmaðurinn getur skilað tæknilega gildri grímu sem vantar enn feld, gegnsætt efni, mjóar ólar eða óskaskugga. Þetta eru skiptingar- og ásetningsspurningar.
Starf ritstjórans hefst aftur eftir ályktun: skala grímuna inn í starfandi hnitakerfið, setja saman forskoðun, láta notandann betrumbæta hana og flytja út núverandi ástand. grímuupplausn vs forskoðunarstærð útskýrir hvers vegna ekki ætti að rugla saman þessum hnitakerfum.
Hnitmiðað andlegt líkan
Hugsaðu um starfsmanninn sem staðbundinn sérfræðing á bak við skilaboðaglugga:
- ritstjórinn á samskiptin;
- verkamaðurinn á hið þunga ályktunarverkefni;
- tvöfaldur myndgögn fara yfir skilgreind mörk;
- starfsmaðurinn skilar grímu, ekki fullkomnum dómi um hverja brún;
- ritstjórinn er áfram ábyrgur fyrir núverandi ástandi, endurskoðun, betrumbót og útflutningi.
Til að sjá líkanið á pixlunum sjálfum, haltu áfram með What a on-device cutout model sees. Fyrir hagnýtt yfirlit frá enda til enda, sjá Hvernig staðbundin fjarlæging bakgrunns virkar.