Pulsuz Chrome genişləndirilməsi — cihazdakı kəsiklər

Veb İşçisi təsvirinin işlənməsinin əsasları

Veb İşçisi, redaktorun əsas ipini bütün işləri görmədən bahalı hesablamalar apara bilən ayrıca JavaScript icra kontekstidir. Brauzer təsvirinin işlənməsi üçün bu o deməkdir ki, model quraşdırması və nəticə çıxarmaq düymələr, tərəqqi mesajları, fırça daxiletməsi və ekran yeniləmələri üçün cavabdeh olan mövzudan qaça bilər.

Nəticə “pulsuz fon emal” deyil. Eyni cihaz hələ də hesablamaları yerinə yetirir və yaddaşdan istifadə edir. Memarlıq faydası ayrılıqdır: ağır model əməliyyatı işləyərkən hər bir interfeys cavabını bloklamaq ehtimalı azdır.

Əsas mövzuda istifadəçi interfeysi işi var

Brauzer səhifəsi adətən JavaScript-i əsas mövzuda işlədir. Bu ip eyni zamanda düzümü, rəngləməni və girişi əlaqələndirir. Bir uzun hesablama onu tutursa, kliklər gecikmiş kimi görünə bilər, animasiya dayana bilər və brauzer səhifənin cavab verməməsi barədə xəbərdarlıq edə bilər.

Şəkil redaktorunun nəticə çıxarmağa başlamazdan əvvəl çoxlu əsas mövzu məsuliyyəti var:

Seqmentləşdirmə modelinin ədədi işini eyni mövzuya qoymaq, bu vəzifələri birbaşa rəqabətə aparacaq. İşçi daha aydın sərhəd yaradır.

Mesaja əsaslanan sərhəd

Redaktor və işçi adi dəyişənləri paylaşmır. Mesajlar göndərməklə ünsiyyət qururlar. Sadələşdirilmiş axın belə görünür:

  1. Redaktor işçi yaradır və ya yenidən istifadə edir.
  2. İşçidən nəticənin icra müddətini və modelini işə salmağı xahiş edir.
  3. Şəkil məlumatlarını hazırlayır və nəticə çıxarma sorğusu göndərir.
  4. İşçi verilənləri modelin gözlənilən girişinə çevirir.
  5. İşçi modeli işlədir və maska ​​dəyərləri istehsal edir.
  6. Maskanı və ya nəticə məlumatını geri göndərir.
  7. Redaktor ilkin baxışı birləşdirir və dəqiqləşdirməyə və ya ixrac etməyə imkan verir.

Mesajlar düzgün sorğuya cavab vermək üçün kifayət qədər kontekstdən ibarət olmalıdır. Bu, istifadəçinin əvvəlki iş bitməzdən əvvəl başqa bir şəkil seçməsi vacibdir. İnterfeys köhnə nəticəni yeni mənbə üzərində göstərməkdən çəkinməlidir.

Şəkil məlumatlarının kopyalanması və ötürülməsi

Kiçik mətn mesajı göndərmək ucuzdur. Brauzer bütün buferi kopyalamalıdırsa, milyonlarla piksel dəyərinin göndərilməsi bahalı ola bilər. Veb API-ləri əvəzinə müəyyən ikili buferlərin sahibliyini ötürə bilər. Köçürülmüş bufer, göndərici tərəfdə istifadə edilə bilən dublikat saxlamadan qəbuledici üçün əlçatan olur.

Bu optimallaşdırma dizayn məhdudiyyəti ilə gəlir: köçürmədən sonra göndərən eyni buferdən istifadə etməyə davam edə bilməz, sanki hələ də verilənlərə sahibdir. Redaktor ayrıca displey təqdimatını saxlaya bilər, xüsusi nəticə buferi yarada və ya lazım olanı sonradan yenidən qura bilər.

Hər tətbiqetmə eyni yerlərdə transferdən istifadə etmir. Ümumi dərs ondan ibarətdir ki, mövzunun ayrılması məlumatların hərəkətini yox etmir. Şəkil ölçüləri, bufer ölçüsü və çevrilmələrin sayı hələ də gecikmə və yaddaşa təsir göstərir.

Easy Background Remover işçiyə nə qoyur

Easy Background Remover cihazda seqmentasiya üçün brauzerin nəticə çıxarma müddəti olan Veb İşçisindən istifadə edir. Ağır avtomatik kəsmə addımı maska ​​yaradır. Sonra redaktor yığılmış nəticəni göstərir və CPU-kətan fırçasının incəliyini dəstəkləyir.

Bu ayırma uğursuzluqlara daha faydalı bir sərhəd verir. Əgər işçi işə başlaya bilmirsə və ya nəticə çıxararkən qəza baş verirsə, interfeys yeganə siqnal kimi daimi olaraq dondurulmuş nişana etibar etmək əvəzinə işçi ilə əlaqəli xəta barədə məlumat verə bilər.

O, həmçinin yerli emal iddiasını başa düşülən saxlayır. Uzatma səhifəsindən öz işçisinə piksel göndərilməsi uzaqdan kəsmə API-yə yükləmə deyil, brauzer mühiti daxilində ünsiyyətdir. Birinci sessiya təkrar istifadə edilə bilən model aktivini ayrıca endirə bilər; baxın Niyə ilk dəfə bir modeli endirir.

İşçi hesablamanı ani etmir

İşçilər xam cihaz qabiliyyətini deyil, cavab vermə qabiliyyətini yaxşılaşdırır. Model hələ də brauzerin təmin edə biləcəyinə uyğun olaraq CPU, GPU və ya digər iş vaxtı resurslarını istehlak edir. Böyük bir giriş hələ də daha uzun çəkə bilər və kiçikdən daha çox yaddaş tələb edə bilər.

Bir neçə məhdudiyyət qalır:

Beş şəkil üçün beş nəticə çıxarma işçisinə başlamaq avtomatik olaraq beş dəfə sürətli deyil. İşçilər eyni maşını paylaşırlar. Paralel işlər yaddaş ötürmə qabiliyyəti və icra resursları üçün rəqabət apara bilər, halbuki hər bir model nümunəsi öz yaddaş dəyərini daşıya bilər.

Tərəqqi hesabatı kooperativdir

İşçi status mesajları göndərə bilər, lakin o, avtomatik olaraq hansı irəliləyiş faizini dəqiq hiss edəcəyini bilmir. Modelin endirilməsi, iş vaxtının işə salınması, daxiletmənin hazırlanması, nəticə çıxarma, maskanın çevrilməsi və önizləmənin göstərilməsi müxtəlif vaxta malik ayrı-ayrı mərhələlərdir.

Bəzi mərhələlərin ölçülə bilən bayt sayları var. Tək bir model icrası yalnız “başlanmış” və “bitmiş” i göstərə bilər. Eyni şəkildə irəliləyən hamar bir faiz dəqiq ölçü deyil, kosmetik ola bilər.

Faydalı tərəqqi UI mümkün olduqda mərhələni adlandırır: modelin hazırlanması, təsvirin işlənməsi və ya nəticənin qurulması. O, həmçinin heç bir izahat vermədən əyirici buraxmaq əvəzinə uğursuzluq və ləğvi idarə edir.

Ləğv etmək spinneri gizlətməkdən daha çox şeydir

İstifadəçi şəkli bağlayırsa və ya yenidən başlayırsa, interfeys köhnəlmiş sorğudan gələn cavabı nəzərə almaya bilər. Əsas hesablamanın dərhal dayandırılması iş vaxtından əlavə dəstək tələb edə bilər və ya işçinin dayandırılması və yenidən yaradılması tələb oluna bilər.

İşçini işdən çıxarmaq həlledicidir, lakin o, işə salınmış vəziyyətini ləğv edir. Növbəti iş modeli yenidən yükləməli və işə salmalı ola bilər. Qısa bir əməliyyat üçün nəticənin köhnəldiyini qeyd etmək hər şeyi sökməkdən daha ucuz ola bilər.

Düzgün seçim yaddaş təzyiqindən, əməliyyat müddətindən və iş vaxtı imkanlarından asılıdır. İstifadəçinin nöqteyi-nəzərindən, vacib qayda ondan ibarətdir ki, köhnə iş cari redaktənin üzərinə yazmamalıdır.

Səhvlər də sərhədi keçməlidir

İşçi daxilindəki istisna normal əsas mövzu istisnasına çevrilmir. İşçi istifadə edilə bilən səhvlər barədə məlumat verməlidir və redaktor işçi səviyyəsindəki uğursuzluqları dinləməlidir.

Səhvlərin yaxşı idarə edilməsi ən azı aşağıdakıları fərqləndirir:

Bu, ümumi “nəsə xəta getdi”dən daha təsirli olur, xüsusən ilk quraşdırma və normal görüntü emalının müxtəlif üsulları olduqda.

İşçi çıxışı hələ də yalnız ilk maskadır

Mövzu arxitekturası qeyri-müəyyən kənarı təkmilləşdirmir. İşçi hələ də xəzi, şəffaf materialı, dar qayışları və ya istədiyi kölgəni əldən verən texniki cəhətdən etibarlı maskanı qaytara bilər. Bunlar seqmentləşdirmə və niyyət suallarıdır.

Redaktorun işi nəticə çıxardıqdan sonra davam edir: maskanı işçi koordinat sisteminə miqyaslandırın, ön baxışı birləşdirin, istifadəçiyə onu dəqiqləşdirməyə icazə verin və cari vəziyyəti ixrac edin. Maskanın həlli və önizləmə ölçüsü bu koordinat sistemlərinin niyə qarışdırılmamalı olduğunu izah edir.

Qısa zehni model

Mesaj pəncərəsinin arxasında işçini yerli mütəxəssis kimi düşünün:

Modelin piksellərə baxışı üçün Cihazda kəsilmiş model nə görür ilə davam edin. Başdan sona praktik icmal üçün Yerli fonun silinməsi necə işləyir bölməsinə baxın.

Kəşf etməyə davam edin

Maraqlıdır