Անվճար Chrome-ի ընդլայնում. սարքի կտրվածքներ

Web Worker պատկերների մշակման հիմունքներ

Web Worker-ը JavaScript-ի կատարման առանձին համատեքստ է, որը կարող է կատարել թանկարժեք հաշվարկներ՝ առանց խմբագրի հիմնական շարանը ստիպելու կատարել ամբողջ աշխատանքը: Բրաուզերի պատկերների մշակման համար դա նշանակում է, որ մոդելի կարգավորումն ու եզրակացությունը կարող են հեռանալ կոճակների, առաջընթացի հաղորդագրությունների, վրձինների մուտքագրման և էկրանի թարմացումների համար պատասխանատու շղթայից:

Արդյունքը «անվճար ֆոնային մշակում» չէ։ Նույն սարքը դեռ կատարում է հաշվարկը և օգտագործում հիշողություն: Ճարտարապետական ​​առավելությունը տարանջատումն է. ծանր մոդելի գործողությունն ավելի քիչ հավանական է, որ արգելափակի յուրաքանչյուր ինտերֆեյսի պատասխանը, երբ այն աշխատում է:

Հիմնական շարանը ունի օգտագործողի միջերեսի աշխատանք

Բրաուզերի էջը սովորաբար աշխատում է JavaScript-ը հիմնական թեմայի վրա: Այդ շարանը նաև համակարգում է դասավորությունը, նկարչությունը և մուտքագրումը: Եթե ​​մեկ երկար հաշվարկ զբաղեցնի այն, սեղմումները կարող են հետաձգվել, անիմացիան կարող է դադարեցվել, և զննարկիչը կարող է զգուշացնել, որ էջը չի արձագանքում:

Պատկերի խմբագրիչը ունի հիմնական թեմայի բազմաթիվ պարտականություններ, նախքան եզրակացությունը սկսելը.

Սեգմենտավորման մոդելի թվային աշխատանքը նույն թելի վրա դնելը կստիպի այդ առաջադրանքները ուղղակիորեն մրցակցել: Աշխատողն ավելի հստակ սահման է ստեղծում:

Հաղորդագրության վրա հիմնված սահմանը

Խմբագիրն ու աշխատողը չեն կիսում սովորական փոփոխականները։ Նրանք շփվում են հաղորդագրություններ ուղարկելով։ Պարզեցված հոսքը հետևյալն է.

  1. Խմբագիրը ստեղծում կամ նորից օգտագործում է աշխատող:
  2. Այն խնդրում է աշխատողին սկզբնավորել եզրակացության գործարկման ժամանակը և մոդելը:
  3. Այն պատրաստում է պատկերի տվյալները և ուղարկում է եզրակացության հարցում:
  4. Աշխատողը տվյալները փոխակերպում է մոդելի ակնկալվող մուտքագրման:
  5. Աշխատողը գործարկում է մոդելը և արտադրում դիմակային արժեքներ:
  6. Այն հետ է ուղարկում դիմակը կամ արդյունքի տվյալները:
  7. Խմբագիրը կազմում է նախադիտումը և հնարավորություն է տալիս կատարելագործումը կամ արտահանումը:

Հաղորդագրությունները պետք է ներառեն բավարար համատեքստ՝ ճիշտ հարցման պատասխանին համապատասխանելու համար: Սա կարևոր է, եթե օգտատերը ընտրի մեկ այլ պատկեր մինչև նախորդ աշխատանքի ավարտը: Ինտերֆեյսը պետք է խուսափի հին արդյունքի ցուցադրումից նոր աղբյուրի վրա:

Պատկերի տվյալների պատճենում և փոխանցում

Փոքրիկ տեքստային հաղորդագրություն ուղարկելը էժան է: Միլիոնավոր պիքսելային արժեքներ ուղարկելը կարող է թանկ արժենալ, եթե զննարկիչը պետք է պատճենի ամբողջ բուֆերը: Վեբ API-ները կարող են փոխարենը փոխանցել որոշակի երկուական բուֆերների սեփականությունը: Փոխանցված բուֆերը հասանելի է դառնում ստացողի համար՝ չպահպանելով օգտագործվող կրկնօրինակը ուղարկողի կողմից:

Այդ օպտիմիզացիան գալիս է դիզայնի սահմանափակումով. փոխանցումից հետո ուղարկողը չի կարող շարունակել օգտագործել նույն բուֆերը, կարծես թե դեռ տիրապետում է տվյալներին: Խմբագիրը կարող է պահպանել առանձին ցուցադրման ներկայացում, ստեղծել հատուկ եզրակացության բուֆեր կամ վերակառուցել այն, ինչ իրեն անհրաժեշտ է հետագայում:

Ամեն իրականացում չէ, որ օգտագործում է փոխանցում հենց նույն վայրերում: Ընդհանուր դասն այն է, որ թելերի բաժանումը չի հանգեցնում տվյալների շարժման անհետացմանը: Պատկերի չափերը, բուֆերի չափը և փոխակերպումների քանակը դեռևս ազդում են հետաձգման և հիշողության վրա:

Ինչ է Easy Background Remover-ը դնում բանվորի մեջ

Easy Background Remover-ն օգտագործում է Web Worker-ը՝ բրաուզերի եզրակացության գործարկման ժամանակով՝ սարքի հատվածավորման համար: Ծանր ավտոմատ անջատման քայլը ստեղծում է դիմակ: Այնուհետև խմբագրիչը ցուցադրում է բաղադրյալ արդյունքը և աջակցում է պրոցեսորի կտավի վրձինների ճշգրտումը:

Այս տարանջատումը ձախողումներին տալիս է ավելի օգտակար սահման: Եթե ​​աշխատողը չի կարող նախաստորագրվել կամ խափանում է եզրակացության ընթացքում, ինտերֆեյսը կարող է հաղորդել աշխատողի հետ կապված սխալ՝ որպես միակ ազդանշան հենվելու մշտապես սառեցված ներդիրի վրա:

Այն նաև հասկանալի է պահում տեղական վերամշակման պահանջը: Ընդլայնման էջից պիքսելներ ուղարկելը սեփական աշխատակցին հաղորդակցություն է դիտարկիչի միջավայրում, այլ ոչ թե վերբեռնում հեռավոր անջատման API: Առաջին նիստը կարող է առանձին ներբեռնել բազմակի օգտագործման մոդելի ակտիվը. տես Ինչու առաջին անգամ գործարկել մոդելի ներբեռնումը:

Աշխատողը ակնթարթային հաշվարկ չի անում

Աշխատողները բարելավում են արձագանքման ունակությունը, այլ ոչ թե հում սարքի հնարավորությունները: Մոդելը դեռ սպառում է CPU, GPU կամ գործարկման այլ ռեսուրսներ՝ ըստ զննարկչի տրամադրածի: Մեծ մուտքագրումը դեռ կարող է ավելի երկար տևել և ավելի շատ հիշողություն պահանջել, քան փոքրը:

Մնացել են մի քանի սահմաններ.

Հինգ պատկերի համար հինգ եզրակացության աշխատող սկսելը ինքնաբերաբար հինգ անգամ ավելի արագ չէ: Աշխատողները կիսում են նույն մեքենան։ Զուգահեռ աշխատանքները կարող են մրցակցել հիշողության թողունակության և կատարման ռեսուրսների համար, մինչդեռ յուրաքանչյուր մոդելի օրինակ կարող է կրել իր հիշողության արժեքը:

Առաջընթացի հաշվետվությունը համագործակցային է

Աշխատակիցը կարող է ուղարկել կարգավիճակի հաղորդագրություններ, բայց ինքնաբերաբար չգիտի, թե առաջընթացի որ տոկոսն է ճշգրիտ: Մոդելի ներբեռնումը, գործարկման ժամանակի սկզբնավորումը, մուտքագրման պատրաստումը, եզրակացությունը, դիմակի փոխարկումը և նախադիտման ցուցադրումը առանձին փուլեր են՝ տարբեր ժամկետներով:

Որոշ փուլեր ունեն բայթերի չափելի քանակ: Մեկ մոդելի կատարումը կարող է բացահայտել միայն «սկսված» և «ավարտված»: Հետևաբար, սահուն տոկոսը, որը առաջադիմում է միատեսակ, կարող է ավելի շուտ կոսմետիկ լինել, քան ճշգրիտ չափում:

Օգտակար առաջընթացի UI-ն անվանում է փուլը, երբ դա հնարավոր է՝ մոդելի պատրաստում, պատկերի մշակում կամ կառուցման արդյունք: Այն նաև կարգավորում է ձախողումը և չեղարկումը, այլ ոչ թե մանողին առանց բացատրության թողնելու:

Չեղարկումն ավելին է, քան մանողին թաքցնելը

Եթե օգտատերը փակում է պատկերը կամ սկսում է նորից, ինտերֆեյսը կարող է անտեսել հնացած հարցման վերջնական պատասխանը: Հիմնական հաշվարկների անհապաղ դադարեցումը կարող է պահանջել լրացուցիչ աջակցություն գործարկման ժամանակից կամ աշխատողի դադարեցումը և վերստեղծումը:

Աշխատողին դադարեցնելը որոշիչ է, բայց այն մերժում է դրա սկզբնավորման վիճակը: Հաջորդ աշխատանքը կարող է նորից բեռնել և նախաստորագրել մոդելը: Կարճ գործողության համար հնացած արդյունքի նշումը կարող է ավելի էժան լինել, քան ամեն ինչ քանդելը:

Ճիշտ ընտրությունը կախված է հիշողության ճնշումից, շահագործման տևողությունից և գործարկման հնարավորություններից: Օգտագործողի տեսանկյունից կարևոր կանոնն այն է, որ հնացած աշխատանքը չպետք է վերագրի ընթացիկ խմբագրումը:

Սխալները նույնպես պետք է անցնեն սահմանը

Աշխատողի ներսում բացառությունը չի դառնում սովորական հիմնական շղթայի բացառություն: Աշխատողը պետք է զեկուցի օգտագործելի սխալներ, և խմբագիրը պետք է լսի աշխատողի մակարդակի ձախողումները:

Սխալների լավ մշակումը առանձնացնում է առնվազն.

Սա ավելի կիրառելի է, քան ընդհանուր «ինչ-որ բան սխալ է տեղի ունեցել», հատկապես, երբ առաջին գործարկման կարգավորումը և պատկերի նորմալ մշակումն ունեն տարբեր միջոցներ:

Աշխատողների արդյունքը դեռ միայն առաջին դիմակն է

Թեմաների ճարտարապետությունը ինքնին չի բարելավում երկիմաստ եզրը: Աշխատողը կարող է վերադարձնել տեխնիկապես վավեր դիմակ, որը դեռ բացակայում է մորթուց, թափանցիկ նյութից, նեղ ժապավեններից կամ ցանկալի ստվերից: Դրանք սեգմենտավորման և մտադրության հարցեր են:

Խմբագրի աշխատանքը վերսկսվում է եզրակացությունից հետո. մասշտաբավորել դիմակը աշխատանքային կոորդինատների համակարգում, նախադիտում կազմել, թույլ տալ օգտվողին կատարելագործել այն և արտահանել ներկայիս վիճակը: Դիմակի լուծումն ընդդեմ նախադիտման չափի բացատրում է, թե ինչու չպետք է շփոթել այդ կոորդինատային համակարգերը:

Համառոտ մտավոր մոդել

Մտածեք աշխատողին որպես տեղացի մասնագետ հաղորդագրության պատուհանի հետևում.

Մոդելի կողմից պիքսելների պատկերը տեսնելու համար շարունակեք [What an on-device cutout model sees]-ով (/what-an-on-device-cutout-model-sees/): Գործնական ակնարկի համար տե՛ս Ինչպես է աշխատում տեղական ֆոնի հեռացումը:

Շարունակեք ուսումնասիրել

Հետաքրքիր է