Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
December 10, 2022 04:55 pm GMT

Flutter Performance Best Practices

En iyi performans uygulamalar

Pahal ilemleri en aza indirin

Uygulamanzn kullanc arayzn nasl tasarladnz ve uyguladnz, ne kadar verimli alt zerinde byk bir etkiye sahip olabilir.

Kullanc arayznz tasarlarken aklnzda bulundurmanz gereken baz noktalar unlardr:

  • Build() methodu ancestor(ata) widget'lar yeniden oluturulduunda sk sk arlabilecei iin build() methodun da tekrarlayan ve maliyetli ilemler yapmaktan kann.

  • Ar byk tek widgetlarn kullanmndan kann. Bu widgetlar daha kk widget'lara paralayn.

    • Bir State nesnesinde setState() arldnda, tm alt paracklar yeniden oluturulur. Bu nedenle, setState() arsn alt aacn kullanc arayznn gerekten deimesi gereken ksmna yerelletirin. Deiiklik aacn kk bir blmnde yer alyorsa, aacn yukarsnda setState() ilevini armaktan kann.
    • Hi bir deiiklik olmayacak olan widgetlarnzda const ifadesini kullann.
    • Kullanc arabirimlerinin yeniden kullanlabilir paralarn oluturmak iin bir fonksiyon yerine StatelessWidget kullanmay tercih edin.

saveLayer() methodunu dikkatli bir ekilde kullann

Baz Flutter kodlar, kullanc arabiriminde eitli grsel efektler uygulamak iin pahal bir ilem olan saveLayer()'i kullanr. Kodunuz aka saveLayer() methodunu armasa bile kullandnz paketler aryor olabilir. saveLayer() ilevine yaplan ar arlar, jank'a neden olabilir.

saveLayer neden pahaldr?

saveLayer() esinin arlmas, ekran d bir buffer ayrr ve ekran d buffer'a ierik izmek, bir oluturma hedefi anahtarn(render target switch) tetikleyebilir. Mobil GPU'larda bu, ileme verimini zellikle kesintiye uratr.

Uygulamanzn saveLayer()'i dorudan veya dolayl olarak ne sklkla ardn nasl anlayabilirsiniz?
?

saveLayer() yntemi, DevTools zaman izelgesinde bir olay tetikler; PerformanceOverlayLayer' kontrol ederek sahnenizin ne zaman saveLayer kullandn renebilirsiniz.

saveLayer() methodunu tetikleyebilecek ve potansiyel olarak maliyetli olabilecek dier widgetlar:

ShaderMask
ColorFilter
ChipdisabledColorAlpha != 0xff ise saveLayer() arsn tetikleyebilir
Text-overflowShader varsa saveLayer() arsn tetikleyebilir

Opacity ve clipping kullanmn en aza indirin

Opacity widget'n yalnzca gerektiinde kullann.Opacity widget'n kullanmadan bir grntye opaklk eklemek iin baknz.

Basit ekilleri veya metni bir Opaklk widget'na sarmak yerine, bunlar yar saydam bir renkle izmek genellikle daha hzldr.

Krpma ilemi pahal olabilecei iin varsaylan olarak devre d braklmtr.(Clip.none) Belgeler clipping rectangle uygulamak yerine borderRadius zelliini kullanmay nerir.

Grid'leri ve listeleri dikkatli bir ekilde uygulayn

Byk bir grid veya liste olutururken, lazy builder methodlarn kullann. Bu, balatma srasnda ekrann yalnzca grnen ksmnn oluturulmasn salar.

ilemlerin neden olduu layout(dzen) geilerini en aza indirin

Flutter, widget'lar zerinden yalnzca bir layout(dzen) geii gerekletirmeye alr, ancak bazen ikinci bir gei (i gei olarak adlandrlr) gerekir ve bu, performans yavalatabilir.

sel(intrinsic) gei nedir?
sel bir gei, rnein, tm hcrelerin en byk veya en kk hcrenin boyutuna sahip olmasn istediinizde (veya tm hcrelerin yoklanmasn gerektiren benzer bir hesaplamada) gerekleir.

Ar isel geilerinizin olup olmadn belirlemek iin DevTools'ta Track layouts seeneini etkinletirin (varsaylan olarak devre ddr) ve ka dzen geiinin gerekletirildiini renmek iin uygulamann yn izlemesine(stack trace) bakn.

geilerden kanmak iin:

  • Hcreleri nceden sabit bir boyuta ayarlayn.
  • Belirli bir hcreyi "anchor" hcre olarak sein; tm hcreler bu hcreye gre boyutlandrlacaktr.

Kaynakklar


Original Link: https://dev.to/gulsenkeskin/flutter-performance-best-practices-27dd

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To