2014-04-15 2 views
0

Google Play에서 일부 타사 앱을 설치했습니다. 일부 연구 목적을 위해, 나는 그 애플 리케이션을 프로파일 링해야합니다.타사 앱을 프로파일하는 방법은 무엇입니까?

예를 들어 "onCreat()" "onStartCommand()" "onStopped()"와 같은 일부 콜백 함수가 시작되고 완료되는 시간을 프로파일 링합니다.

단서가 있습니까?

답변

0

오픈 소스 응용 프로그램을 선택하고 소스에서 디버그 모드로 컴파일 한 다음 결과를 프로파일 링하십시오.

1

디버거에서 모든 것을 실행할 수 있다면 Ctrl-C 또는 일시 중지를 누르거나 콜백 중 하나에있는 한 제 3 자 코드에 디버그 정보가 있는지 여부는 중요하지 않습니다 스택에 콜백을 표시합니다. 그래서

<some system/library routines called by your callback> 
    ... 
YourCallbackCode 
    ... 
<the 3rd-party routines> 
    ... 
YourTopLevelCode 
    ... 
main() 

당신이 10 개 또는 20 등 샘플, YourCallbackCode 스택에 표시되는 시간의 비율을 가지고가는 경우에 좋은 추정치입니다 : 그것은 당신의 콜백에있을 때

스택 추적은 다음과 같이 보일 것이다 시간의 몇 분의 1을 책임진다. (매우 작은 경우가 아니면 코드에 병목 현상이 발생하지 않습니다.)

예를 들어 스택 샘플의 50 %에있는 경우 약 50 %의 시간이 소요됩니다. 따라서 시간을 반으로 줄이면 (예 : 적은 수의 new), 100/75 = 1.33 = 33 %의 경우, 50 % 또는 전체 25 %의 절반을 절약 할 수 있습니다.

콜백 코드의 어떤 라인이 많은 시간을 소비하는지 볼 수 있습니다.

관련 문제