Simpleperf

Android 스튜디오에는 Simpleperf 그래픽 프런트엔드가 포함되어 있으며 이는 CPU 프로파일러를 사용하여 CPU 활동 검사에 설명되어 있습니다. 대부분의 사용자는 Simpleperf를 직접 사용하기 보다는 이렇게 사용합니다.

명령줄을 사용하고 싶다면 Simpleperf가 Mac, Linux, Windows용 NDK에 포함된 다목적 명령줄 CPU 프로파일링 도구입니다.

전체 문서를 확인하려면 Simpleperf README로 시작하세요.

Simpleperf 도움말 및 레시피

Simpleperf를 이제 막 사용하기 시작했다면 다음과 같이 특히 유용할 수 있는 명령어를 참조하세요. 명령어 및 옵션에 대해 자세히 알아보려면 Simpleperf 명령어 참조를 읽어보세요.

실행하는 데 가장 오래 걸리는 공유 라이브러리 찾기

이 명령어를 실행하면 CPU 사이클 횟수를 기준으로 실행 시간을 가장 많이 차지하는 .so 파일을 확인할 수 있습니다. 이는 성능 분석 세션을 시작할 때 실행하기 좋은 첫 번째 명령어입니다.

$ simpleperf report --sort dso

실행하는 데 가장 오래 걸리는 함수 찾기

실행 시간을 가장 많이 차지하는 공유 라이브러리를 파악했다면 이 명령어를 실행하여 .so 파일의 함수를 실행하는 데 걸리는 시간의 비율을 확인할 수 있습니다.

$ simpleperf report --dsos library.so --sort symbol

스레드에서 소요된 시간 비율 찾기

.so 파일에 소요된 실행 시간은 여러 스레드에서 분할될 수 있습니다. 이 명령어를 실행하여 각 스레드에서 소요된 시간의 비율을 확인할 수 있습니다.

$ simpleperf report --sort tid,comm

객체 모듈에서 소요된 시간 비율 찾기

가장 많은 실행 시간을 소요한 스레드를 찾은 후에는 이 명령어를 사용하여 이러한 스레드에서 실행 시간을 가장 많이 차지하는 객체 모듈을 분리할 수 있습니다.

$ simpleperf report --tids threadID --sort dso

함수 호출과의 관련성 확인

호출 그래프는 프로파일링 세션 동안 Simpleperf가 기록하는 스택 트레이스를 시각적으로 나타냅니다. 호출 그래프 정보를 기록하기 전에 기록 고려사항을 참조하세요.

report -g 명령어를 사용하여 호출 그래프를 인쇄하고 다른 함수에서 호출한 함수를 확인할 수 있습니다. 이는 함수 자체가 느린지, 호출된 하나 이상의 함수가 느린지를 판단하는 데 유용합니다.

$ simpleperf report -g

Python 스크립트 report.py -g를 사용하여 함수를 표시하는 대화형 도구를 시작할 수도 있습니다. 각 함수를 클릭하여 하위 항목에서 소요된 시간을 확인할 수 있습니다.

Unity로 빌드한 앱 프로파일링

Unity로 빌드한 앱을 프로파일링한다면 다음 단계에 따라 디버그 기호로 앱을 빌드했는지 확인하세요.

  1. Unity Editor에서 Android 프로젝트를 엽니다.
  2. Android 플랫폼용 Build Settings 창에서 Development Build 옵션이 선택되어 있는지 확인합니다.
  3. Player Settings를 클릭하고 Stripping Level 속성을 Disabled로 설정합니다.