Monzo, 간단한 R8 업데이트로 성능 지표를 최대 35%까지 향상시키다
벤 와이스(Ben Weiss)는 선임 개발자 관계 엔지니어로, 앱 성능 개선에 대한 몬조(Monzo)의 성공 사례를 공유했습니다. 영국 디지털 은행인 몬조는 앱 시작 시간을 개선해야 할 중요한 문제로 파악했습니다. R8 최적화를 활성화함으로써 앱 응답 없음(Application Not Responding) 비율을 35%까지 크게 줄일 수 있었습니다. 이 중요한 개선은 단 하나의 간단한 변경으로 달성되었습니다.몬조의 주요 변경 사항은 기본 proguard-android.txt 파일에서 proguard-android-optimize.txt 파일로 전환한 것입니다. 이 변경으로 -dontoptimize 지침이 제거되어 R8이 의도한 최적화를 수행할 수 있게 되었습니다. 결과적으로 몬조는 콜드, 웜, 핫 시작 모두에서 시작 안정성이 향상되는 것을 관찰했습니다. P50 및 P90 시간이 감소하면서 실행 속도도 눈에 띄게 향상되었습니다. 또한 앱 크기가 9% 감소했습니다.R8 최적화를 활성화한 후 몬조는 Keep 구성 파일을 검토하고 개선했습니다. 불필요한 규칙을 제거하여 R8이 코드베이스의 더 많은 부분을 최적화할 수 있도록 했습니다. 사용자 경험을 더욱 향상시키기 위해 몬조는 Baseline Profiles를 구현했습니다. 이는 일반적인 사용자 여정인 메인 피드의 스크롤 및 렌더링 성능 최적화에 중점을 두었습니다. P90 및 P95 스크롤 성능이 훨씬 빨라지는 등 상당한 영향을 미쳤습니다.몬조는 Baseline Profile 생성을 릴리스 프로세스에 통합하여 지속적인 개선을 보장했습니다. 와이스는 다른 팀들도 최신 안드로이드 개발 권장 사항을 최신 상태로 유지할 것을 권장합니다. 그는 앱 성능에 대한 Google의 최신 조언과 현재 관행을 정기적으로 검토할 것을 조언합니다. Keep Rules에 대한 적절한 문서화는 몬조가 오래된 규칙을 식별하고 안전하게 제거하는 데 필수적이었습니다.