반응형

안드로이드 개발을 할 때, 성능개선이나 불필요한 부분을 확인하기 좋은 툴이 바로 "Method Profiling"이다.

1. 이클립스를 통한Method profiling.

DDMS에서 프로파일링을 할 package를 선택하고 "Start Method Profiling" 아이콘을 클릭

확인할 부분을 어느정도 수집했다고 생각했을 때 다시 한번 아이콘을 클릭하면 프로파일링이 멈추고 창에 아래와 같이 수집된 정보를 보여준다.

 

현재시간을 구해서 파일명으로 사용할 수 있다.

// 현재 시간을 msec으로 구한다.

long now = System.currentTimeMillis();

// 현재 시간을 저장 한다.

Date date = new Date(now);

// 시간 포맷으로 만든다.

SimpleDateFormat sdfNow = new SimpleDateFormat("yyyyMMdd_HHmmss");

String strNow = sdfNow.format(date);


2. 코딩을 통한Method profiling.

코딩을 통한 방법은 정확한 기준을 가지고, 결과들에 대한 상대적인 비교를 할 수 있어서 아주 유용하다.

AndroidManifest.xml 에 Permission사용을 추가한다.

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

프로파일링을 할 소스의 시작과 끝에 하기의 함수를 추가한다.

import android.os.Debug;

Debug.startMethodTracing("file name");

//… profiling 대상

Debug.stopMethodTracing();

 

/sdcard/"file name".trace(저장되는 위치는 폰마다 조금씩 다를 수 있음.) 파일이 생성된다.

생성된 파일을 이클립스에 Drag해서TraceView 를 볼 수 있다.

실제 실행되는 파일은 Android SDK에 포함되어 있다. 이를 이용하여 trace view를 실행 할 수 있다.

Tool위치 : sdk\tools\traceview.bat

ex) traceview /tmp/calc

 

 

3. adb을 통한 Method profiling.

adb shell

$ am profile <PPRCESS ID> start <TRACE FILE> (프로파일링 시작)

$ am profile <PPRCESS ID> stop (프로파이링 종료)

 

$ am profile 17211 start /sdcard/file_name.trace

$ am profile 17211 stop

 

▶Trace View관련 링크

http://developer.android.com/tools/debugging/debugging-tracing.html


반응형

+ Recent posts