Ókeypis Chrome viðbót - klippingar í tækinu

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:

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:

  1. Ritstjórinn býr til eða endurnotar starfsmann.
  2. Það biður starfsmanninn að frumstilla ályktunartímann og líkanið.
  3. Það undirbýr myndgögn og sendir ályktunarbeiðni.
  4. Starfsmaðurinn breytir gögnunum í væntanlegt inntak líkansins.
  5. Starfsmaðurinn keyrir líkanið og framleiðir grímugildi.
  6. Það sendir grímuna eða niðurstöðugögnin til baka.
  7. 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:

Þ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:

Þ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:

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.

Haltu áfram að kanna

Áhugavert