본문 바로가기

Android/개발TIP

안드로이드/Android (Method) 메서드 실행 시간 확인 하기~!

안드로이드/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


이런식으로 메서드 실행시간을 확인해 주시면, 오랜시간이 걸리는 부분을 찾아 좀 더 효율적인 코드로 수정 할 수 있습니다.