Sparround

DevTools və profiling

Flutter DevTools brauzerdə açılan alət dəstidir və performans işinin mərkəzidir:

  • Widget Inspector — widget ağacı, hər widget-in aldığı constraint-lər (Layout Explorer), rebuild sayğacları
  • Performance — frame-lərin vaxt xətti; hansı frame büdcəni aşıb və vaxt UI yoxsa raster thread-də gedib
  • CPU Profiler — hansı funksiyanın nə qədər vaxt apardığı
  • Memory — yaddaş istifadəsi və sızmaların axtarışı
  • Network — gedən sorğular

Vacib şərt: performans ölçməsi profile rejimində aparılmalıdır. Debug rejimində kod optimallaşdırılmır və nəticələr real cihazdakından xeyli pisdir — debug-da ölçüb nəticə çıxarmaq klassik səhvdir.

SimptomHarada baxmaqTipik səbəb
Sürüşmə zamanı kəkələməPerformance → frame timelineAğır `itemBuilder`, `const` olmayan elementlər
Ekran açılanda donmaCPU ProfilerSinxron ağır hesablama və ya böyük JSON parse
Yaddaş vaxtla artırMemory → allocationsLəğv olunmayan subscription və ya controller
Widget gözlənilmədən böyükdürInspector → Layout ExplorerValideyn tight constraint verib

Interview ipucu. "Yaddaş sızmasını necə tapırsan?" sualı middle səviyyəsində gəlir. Cavab strukturu: (1) ekranı bir neçə dəfə açıb bağlayıram; (2) Memory tabında yaddaşın qayıtmadığını görürəm; (3) allocation siyahısında hansı sinifin nüsxələrinin toplandığına baxıram; (4) səbəb demək olar həmişə dispose()-da ləğv olunmamış subscription, controller və ya listener olur. Bu dördaddımlı cavab konkretdir və təcrübəni göstərir.

📚 Mənbələr və sənədlər