어느 날 문득, Const와 Final를 쓰는게 성능에 차이가 있을까?
몇 개의 글을 찾아 보았다.
Is there a performance gain for final variables?
final, const 가 apk 사이즈를 줄이는 것으로 확인 되었다. 모든 성능 문제는 작은 것으로 부터 시작되어 스노우볼을 굴린다. 때문에 개인적으로 사용을 고수한다.
Flutter performance analysis of const constructor
- 프레임마다 메모리 사용량이 계속 변동적, 최대일 때 기록
- 메모리 사용량은 계속 증가함. 특정 순간에 줄어듬(가비지 컬렉션 발동 할 때). 그 후 다시 증가. 줄어들었을 때 메모리 사용량을 기록함.
테스트 결과
메모리 사용량, frame 성능 const 가 승리
사용량, 크기가 커질 수록 10~20%의 성능이득그래서 위 글의 결론은?
- linter의 prefer_const_constructor 규칙 사용하자
- 이미 개발한 옛날 앱을 개선한다면 성능차이는 미미해 보이니, 꼭 필요해 보이진 않는다.
조급한 최적화는 모든 악의 근원이다
Flutter performance analysis of const constructor 글에 나온 테스트용 코드