앱 성능 프로파일링

반응이 느리거나 애니메이션이 끊기거나 작동을 멈추거나 전력을 많이 소모하면 앱 성능이 낮은 것으로 간주됩니다. 성능 문제를 해결할 때는 앱에서 CPU, 메모리, 그래픽, 네트워크, 기기 배터리와 같은 리소스를 비효율적으로 사용하는 영역을 확인하는 작업이 진행됩니다. 이러한 문제를 찾아서 해결하려면 이 주제에 설명된 프로파일링 및 벤치마킹 도구와 기법을 사용하세요.

Android 스튜디오에서는 잠재적 문제를 찾고 시각하는 데 유용한 다음과 같은 몇 가지 프로파일링 도구를 제공합니다.

  • CPU 프로파일러: 이 도구는 런타임 성능 문제를 추적하는 데 도움이 됩니다.
  • 메모리 프로파일러: 이 도구는 메모리 할당을 추적하는 데 도움이 됩니다.
  • 네트워크 프로파일러: 이 도구는 네트워크 트래픽 사용량을 모니터링합니다.
  • 에너지 프로파일러: 이 도구는 배터리 소진에 영향을 미치는 에너지 사용을 추적합니다.
이러한 도구를 사용하는 방법에 관한 자세한 내용은 Android 스튜디오 프로파일러 페이지를 참고하세요.

Jetpack Benchmark 라이브러리를 사용하여 애플리케이션에서 다양하고 중요한 작업을 측정할 수 있습니다.

  • Macrobenchmark: UI 애니메이션 또는 스크롤 같은 동작에 의해 트리거되는 애플리케이션 시작 및 다시 그리기를 포함해 중요한 성능 사용 사례를 측정합니다.
  • Benchmark: 특정 함수의 CPU 비용을 측정합니다.
이러한 라이브러리에 관해 자세히 알아보려면 앱 벤치마킹 페이지를 참고하세요.

성능 문제의 잠재적 원인은 다양하기 때문에 성능 분석을 처음 시작하는 경우 어디서부터 시작해야 할지 아는 것이 어려울 수 있습니다. 이러한 기법을 사용하여 특정 문제를 해결하는 방법의 예시와 함께 성능 측정 기법을 알아보려면 성능 측정을 참고하세요.

참고: 앱을 프로파일링할 때 Instant Run을 사용 중지해야 합니다. Instant Run을 사용하면 성능에 약간의 영향을 미치고 메서드를 업데이트하면 조금 더 큰 영향을 미칩니다. 이 성능 영향은 성능 프로파일링 도구에서 제공하는 정보에 지장을 줄 수 있습니다. 또한 이 기능을 사용하는 동안 생성되는 스텁 메서드가 스택 트레이스를 복잡하게 만들 수 있습니다.