파파비의 블로그

플러터, flutter) Widget Tree의 Build() 관련 최적화 본문

개발/flutter

플러터, flutter) Widget Tree의 Build() 관련 최적화

N. Dave 2020. 5. 28. 09:35
반응형

<1. const를 통해 rebuild(re initialize) 되는 것을 없애기>

widget tree를 다시 빌드하는 것이 비용이 많이 들지는 않지만, 어떤 위젯들은 절대 바뀌지 않는데도 다시 그려지면 그것은 낭비라고 할 수 있습니다. 우리는 조건을 충족하는 위젯들에 한해서 build가 실행되어도 다시 build가 되도록 하지 않게 할 수 있습니다. 위젯을 생성할 때 앞에 const 를 붙여주면 됩니다.

 

이런식으로 말이죠.

당연히 해당 위젯은 stateless여야하고, 생성자의 값이 시종일관하여 앱이 끝날 때까지 변하지 않는 그런 위젯이어야합니다.

 

생성자에 들어가는 인자의 값이 dynamic하면 앞에 const를 붙일 수 없습니다.

이 chartbar 위젯은 stateless지만, 들어가는 값들이 map의 value들이라서 dynamic합니다. 따라서 앞에 const를 붙일 수가 없습니다.

 

마지막으로 아직 정확히 확인이 안된 상황인데, 

조건을 충족하는 위젯들이 생성자를 정의할 때, 그 앞에도 const를 필수적으로 붙여야하는지 마는지는

확인이 안됐습니다.

 

<2. 앱을 잘게 잘게 쪼개기>

하나의 위젯에 코드가 길어지고 굉장히 커지면 작게 나누었을 때보다 rebuild되는 위젯들이 많아 질 수 있음.

그래서 무조건 위젯들을 잘게 쪼개주는 게 시각적으로나 퍼포먼스적으로 좋음

반응형
Comments