반응형
시간 측정하는 방법 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
반응형
댓글