Jetpack Compose는 즉시 사용 가능한 우수한 성능을 제공합니다. 권장사항을 사용하여 앱을 구성하여 일반적인 문제를 방지하고 Compose 애플리케이션의 성능을 최적화하세요.
Jetpack Compose 벤치마킹
뷰에 대해 Jetpack Compose 성능을 검증하기 위해 앱 콜드 시작 또는 이미지가 포함된 목록 또는 그리드 스크롤과 같은 중요한 실제 사용자 여정에 중점을 두는 벤치마크인 히어로 벤치마크를 사용합니다. 오픈소스 Pokedex 앱을 사용하여 이러한 벤치마크를 실행하고 뷰와 Compose 구현을 비교합니다.
이러한 벤치마크는 Compose 1.9 이상이 스크롤 시의 버벅거림 현상에 대한 뷰 성능과 일치함을 보여줍니다.
추가 측정항목과 Google의 방법론에 관해 알아보려면 히어로 벤치마크를 참고하세요.
주요 개념
다음은 Compose의 성능에 관한 몇 가지 주요 개념입니다.
- 단계: Compose가 UI를 업데이트하는 방식을 최적화하려면 컴포지션, 레이아웃, 그리기 단계를 이해하는 것이 중요합니다.
- 기준 프로필: 이러한 프로필은 필수 코드를 사전 컴파일하여 앱 실행 속도를 높이고 상호작용을 더 원활하게 만듭니다.
- 안정성: 불필요한 재컴포지션을 더 효율적으로 건너뛰어 성능을 개선하도록 앱의 안정성을 높입니다.
적절한 앱 구성
앱의 성능이 좋지 않으면 구성 문제가 있을 수 있습니다. 먼저 다음 구성 옵션을 확인하는 것이 좋습니다.
- R8로 출시 모드에서 빌드: 출시 모드에서 앱을 실행해 보세요. 디버그 모드는 여러 문제를 발견하는 데 유용하지만 성능 비용이 발생하며 다른 문제를 발견하기가 어려워질 수 있습니다. 또한 R8 컴파일러로 최적화 및 축소를 사용 설정하여 성능이 우수하고 효율적인 출시 빌드를 보장해야 합니다.
- 기준 프로필 사용: 기준 프로필은 중요한 사용자 여정을 위한 코드를 사전 컴파일하여 성능을 개선합니다. Compose에는 기본 프로필이 포함되어 있지만 앱별 프로필도 만드는 것이 좋습니다. 일반 Android 성능 문서에서 기준 프로필에 관해 자세히 알아보세요.
도구
Compose 앱의 성능을 측정 하고 분석하는 데 도움이 되는 도구 모음을 숙지하세요.
권장사항
Compose로 앱을 개발할 때는 다음 권장사항에 유념하세요.
- 비용이 많이 드는 계산 방지:
remember를 사용하여 비용이 많이 드는 계산 결과를 캐시합니다. - 지연 레이아웃 지원: `key` 매개변수를 사용하여 지연 레이아웃에 안정적인 키를 제공하여 불필요한 재컴포지션을 최소화합니다.
key - 불필요한 재컴포지션 제한: 상태가 빠르게 변경될 때
derivedStateOf를 사용하여 재컴포지션을 제한합니다. - 상태 읽기 연기: 람다 함수로 래핑하여 상태 읽기를 최대한 연기합니다.
- 상태 변경에 람다 수정자 사용: 자주 변경되는 상태
변수에
Modifier.offset { ... }과 같은 람다 기반 수정자를 사용합니다. - **역방향 쓰기 방지**: 컴포저블에서 이미 읽은 상태에 쓰지 마세요.
자세한 내용은 권장사항 가이드를 참고하세요.
조회수
Compose 대신 뷰를 사용하는 경우 전용 레이아웃 성능 개선 가이드를 참고하세요.
추가 리소스
- 앱 성능 가이드: Android에서 성능을 개선하기 위한 권장사항, 라이브러리, 도구를 알아보세요.
- 성능 검사: 앱 성능을 검사합니다.
- 벤치마킹: 앱 성능을 벤치마킹합니다.
- 앱 시작: 앱 시작을 최적화합니다.
- 기준 프로필: 기준 프로필을 이해합니다.