posted by 귀염둥이채원 2019. 2. 28. 19:02

프로그래밍을 하다보면 특정 소스 코드 구간의 시간을 측정해야 하는 경우 생긴다.

알고리즘을 문제를 풀다보면 시간복잡도가 중요하기 때문에 알고리즘에 대한 속도를 측정하는 것이 필요하다.

또는 개발한 프로그램의 성능이 잘 안나오는 경우 어느 부분이 병목인지 확인이 필요할수도 있다.


자바(Java)에서 System 함수인 System.currentTimeMillis() 함수를 이용하면 쉽게할 수 있다.

시작 구간과 끝나는 구간에 각각 해당 함수를 써서 시간을 저장한 후,

두 시간간의 차이를 계산하면 ms 단위의 시간차를 구할 수 있다.


아래의 코드는 특정 부분의 로직에 걸리는 시간을 테스트 할때 사용하면 좋다.


# 샘플 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class TEST {
    public static void main(String arg[]) throws Exception {
        long beforeTime = System.currentTimeMillis();
        long count = 0;
        for (int i = 0; i < 1000000; i++) {
            for (int j = 0; j < 1000000; j++) {
                count++;
            }
        }
        System.out.println("count= " + count);
        long afterTime = System.currentTimeMillis();
        long secDiffTime = (afterTime - beforeTime);
        System.out.println("시간차이(msec) : " + secDiffTime);
    }
}
cs

# 참고 사이트

https://hijuworld.tistory.com/2

http://www.topcredu.com/bbs/board.php?bo_table=LecJava&wr_id=736