An Interest In:
Web News this Week
- March 20, 2024
- March 19, 2024
- March 18, 2024
- March 17, 2024
- March 16, 2024
- March 15, 2024
- March 14, 2024
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
Dev To
An online community for sharing and discovering great ideas, having debates, and making friendsMore About this Source Visit Dev To