본문 바로가기
오래된 글

자바 알고리즘 또는 프로그램 시간 성능 측정하는 방법

by pagehit 2018. 10. 16.
반응형

시간 측정하는 방법 currentTimeMillis


현재 시간을 반환해주는 메소드인 currentTimeMillis()를 사용하면 시간을 측정할 수 있다. 시간을 측정하면 프로그램의 성능을 알아볼 수 있다.

프로그램이 시작될 때의 시간을 구하고, 끝 났을 때의 시간을 구해서 빼주면 된다. 그러면 프로그램이 동작한 시간을 구할 수 있다.



실제 사용 예



// time public class Tistory { public static void main(String[] args) { int i = 100000; long startTime = System.currentTimeMillis(); program(100000); long estimatedTime = System.currentTimeMillis() - startTime; System.out.println(estimatedTime); } public static void program(int i) { int j=0; while(j < i) j++; } }
// 결과 화면

걸린 시간 : 1 milli seconds

long 형의 데이터 타입을 가지는 변수 startTime에 프로그램이 시작할 때의 시간을 저장해 둔다. 그 다음 프로그램이 끝나면, 프로그램이 끝난 시간에서 시작 시간을 빼주면 총 걸린 시간을 구할 수 있다. 시간의 단위는 밀리 초 임을 염두해 두어야한다.

초 단위로 바꾸고 싶다면, 1000.0 을 나누어 주면 된다.

long 형은 정수 데이터 타입이므로 형 변환을 위해 소수점이 포함된 1000.0을 나누어 주어야 한다.

그러면 다음과 같이 바뀐다.

// Java
System.out.println("걸린 시간 : " + estimatedTime/1000.0 + " milli seconds");

 // 수정된 결과 화면
걸린 시간 : 0.004 milli seconds


nanoTime


자바에서는 시간을 측정할 수 있는 또 다른 메소드가 있다. 바로 nanoTime() 이다.

이 메소드는 시간을 나노 초 단위로 반환해 준다.

보다 정밀한 측정을 하고 싶다면 이 메소드를 이용하면 된다.

//nanoTime
long startTime = System.nanoTime();
program(100000);
long estimatedTime = System.nanoTime() - startTime;
		
System.out.println("걸린 시간 : " + estimatedTime/1000000000.0 + " milli seconds");
// 결과화면
걸린 시간 : 6.31693E-4 milli seconds



반응형

댓글