본문 바로가기
프로그래밍 놀이터/안드로이드, Java

[도서 정리] 안드로이드 앱 성능 최적화 #6 CPU 와 CPU 성능 최적화

by 돼지왕 왕돼지 2018. 6. 27.
반응형


안드로이드 앱 성능 최적화 #6 CPU 와 CPU 성능 최적화



이 글은 “안드로이드 앱 성능 최적화” 의 일부 내용만 정리한 것입니다.

자세한 내용은 책을 구매하여 보세요~

ARM, ARM CPU, big processor, big.LITTLE, Calls + Recursive Calls/Total Calls, cpu systrace, CPU Time/Call, cpu 사용량, cpu 사용량 측정하기, CPU 사용량 표시, cpu 성능 최적화, dumpsys cpuinfo, Exclusive CPU Time, Exclusive Real Time, Inclusive CPU Time, Inclusive Real Time, little processor, pcy, Real Time/Call, sample based profiling, Top, trace based profiling, traceview, Trepn, [도서 정리] 안드로이드 앱 성능 최적화 #6 CPU 와 CPU 성능 최적화, 다른 종류 작업 타입 cpu, 사용자 공간, 입출력 인터럽트, 퀄컴 trepn, 프로세스별 정책

-

모든 CPU 가 동일하고, 어떤 연산을 위해 교차 사용될 수 있는 일반적인 컴퓨터 CPU 와는 다르게,

ARM 기반의 모바일 칩셋은 각기 다른 종류의 작업을 위해 여러 타입의 CPU 를 가지고 있다.

ARM 에서는 이를 big.LITTLE 이라고 부른다.


이메일 체크 같은 작은 백그라운드 작업은 저성능 고효율의 CPU 가 처리한다.

사용자가 동영상을 보거나 게임을 할 때는 고성능 코어를 사용한다.

즉, 작은 작업은 LITTLE 프로세서로 작업을 이관하고, 고전력 작업에만 big 프로세서를 사용하도록 해서 전력소모를 줄일 수 있다.

이런 작업전환은 커널에 의해 조절되고 올바른 프로세서가 자동으로 선택되기 때문에 개발자는 여기에 신경 쓰지 않아도 된다.





6.1. CPU 사용량 측정하기


-

top 명령어로 확인하는 내용 중,

PCY 는 프로세스별 정책을 말한다.



-

adb shell dumpsys cpuinfo 를 통해서 top 보다 더 자세히 CPU 사용률을 알아 볼 수 있다.


첫째 줄은 지난 1분, 5분, 15분간의 평균 CPU 부하가 표시된다.

다음 줄은 약 7초간의 CPU 사용률이 각 앱별로 표시된다.



-

개발자 옵션에서 CPU 사용량 표시를 켜면 화면 오른쪽 상단에 CPU 사용량이 표시된다.

바의 녹색은 사용자 공간, 빨간색은 커널, 파란색은 입출력 인터럽트이다.





6.2. Systrace 를 통한 CPU 사용량 분석





6.3. Traceview (Legacy Monitor DDMS 도구)


-

TraceView 의 첫번째 옵션인 Sample based profiling 은 VM 의 모든 프로세스를 대상으로 매 xms 단위로 샘플링을 한다.

CPU 에 영향을 좀 덜 줘야 하거나 오랫동안 분석이 필요하다면 선택할 수 있는 옵션이다.


두번째 옵션 Trace based profiling 은 시작과 끝 사이 모든 메서드 호출을 저장하는 방식이다.

이 방법을 사용하면 더 큰 부하가 생기고 꽤나 성능이 좋은 기기를 사용해도 앱에 영향을 줄 수 있다.



-

Inclusive CPU Time

    현재 메서드 내부에서만 사용된 시간( CPU 를 실제 사용한 시간 ) + 하위 메서드를 호출하는 데 걸린 시간

Exclusive CPU Time

    현재 메서드 내부에서만 사용된 시간

Inclusive Real Time

    현재 메서드 내부에서만 사용된 실제(CPU 사용 시간 + CPU 대기 시간) 시간 + 하위 메서드 호출하는 데 걸린 실제 시간

Exclusive Real Time

    현재 메서드 내부에서만 사용된 실제 시간

Calls + Recursive Calls/Total Calls

    메서드가 호출된 횟수

CPU Time/Call

    함수 호출당 사용된 시간

Real Time/Call

    함수 호출당 사용한 실제 시간





6.4. Traceview (안드로이드 스튜디오)





6.5. 다른 프로파일링 도구


-

퀄컴에서 만든 무료 앱 Trepn 을 이용하면 오버레이 화면에 실시간 메모리, CPU, 배터리, 네트워크 사용량 등을 표시할 수 있다.

퀄컴 프로세서를 사용하는 기기라면 GPU 사용량도 살펴볼 수 있다.

여기서 수집된 데이터는 나중에 분석을 다시 할 수 있도록 CSV 나 데이터베이스로도 저장 할 수 있다.




6.6. 결론




반응형

댓글