안드로이드/Android (Method) 메서드 실행 시간 확인 하기~!
가끔 어디서 그러는지는 모르지만 작업에 상당한 시간이 걸리는 경우가 발생하게 됩니다. 보통 그럴 경우 원인을 찾아서 해결해야 하는데요. 도무지 감이 잡히지 않는 상황이나, 프로젝트 유지보수를 해야 하는 경우에는 메서드 실행시간을 일일이 확인해서 오래 걸리는 이유를 찾아내야 합니다.
자 그럼, 메서드 실행 시간을 체크 하는 방법에 대해 알아 보겠습니다.
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); long startTime = System.currentTimeMillis(); long endTime = System.currentTimeMillis(); Log.d("timecheck", "onCreate:" + (endTime - startTime)); }
07-23 22:35:01.885: D/timecheck(28428): onCreate:0
현재 onCreate() 메서드에서 아무런 작업도 하지않아 실행시간이 0초가 나왔지만, 만약 패키지 매니저를 사용해서 단말에 설치된 모든 패키지를 얻어와서 원하는 패키지와 비교하는 작업을 하게 되는 경우 오랜 시간이 소요 됩니다.
아래는 Thread.sleep(2500) (2.5초)를 강제로 준 경우 입니다. Thread.sleep(2500)을 원래 메서드의 실행시간이라고 생각하면 이해가 편하겠죠?
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); long startTime = System.currentTimeMillis(); try {Thread.sleep(2500);} catch (InterruptedException e) {} long endTime = System.currentTimeMillis(); Log.d("timecheck", "onCreate:" + (endTime - startTime)); }
결과
07-23 22:45:24.325: D/timecheck(29988): onCreate:2500
이런식으로 메서드 실행시간을 확인해 주시면, 오랜시간이 걸리는 부분을 찾아 좀 더 효율적인 코드로 수정 할 수 있습니다.
'Android > 개발TIP' 카테고리의 다른 글
안드로이드/Android Gravity 속성 중복(한개 이상) 지정 하기~! (0) | 2013.01.31 |
---|---|
안드로이드/Android getClass() 사용 TIP (1) | 2012.08.08 |
안드로이드/Android String 문자열 공백("")의 Length 길이는? (0) | 2012.07.18 |
안드로이드/Android Logcat 한글 기울어짐 현상 수정하기 (0) | 2012.07.12 |
안드로이드/Android Logcat 세션 필터(session filter) 기능 중지 하기 (0) | 2012.07.12 |