프로그래밍을 하다보면 딜레이가 발생하거나해서 어느 부분이 느린지 알아내야 하는 경우가 생길 수 있습니다.


또는 알고리즘을 공부하다보면 내가 구현한 알고리즘의 속도를 알고싶을 때가 있습니다.


그럴때 특정 구간에 코드 실행시간을 알아야내야 하는 경우에 필요한 포스팅 입니다.


JAVA에서 코드에 실행 시간을 측정하거나 특정 구간에 시간이 얼마나 소요되는지를 알고 싶을때 사용하는 코드 입니다.


현재 시간을 받아오는 System 함수인 System.currentTimeMillis() 함수를 이용하면 쉽게 구할 수 있습니다.

시작 구간과 끝나는 구간에 각각 해당 함수를 써서 시간을 받아오고 두 시간간의 차이를 계산하면 ms 단위의 시간차를 구할 수 있습니다.


ms를 초(s)로 변환하고 싶다면 /1000을 해주면 됩니다.

추가로 초(s)를 분(m) 구하고 싶다면 /60을 추가로 해주면 됩니다.




- 사용 방법 -

1
2
3
4
5
6
7
long beforeTime = System.currentTimeMillis(); //코드 실행 전에 시간 받아오기
        
//실험할 코드 추가
        
long afterTime = System.currentTimeMillis(); // 코드 실행 후에 시간 받아오기
long secDiffTime = (afterTime - beforeTime)/1000//두 시간에 차 계산
System.out.println("시간차이(m) : "+secDiffTime);



- 사용 예시 -

1
2
3
4
5
6
7
8
9
10
11
12
13
long beforeTime = System.currentTimeMillis();
        
int sum = 0;
for (int i = 0; i < 1000000; i++) {
    for (int j = 0; j < 50000; j++) {
        sum += i*j;
    }
}
System.out.println(sum);
    
long afterTime = System.currentTimeMillis(); 
long secDiffTime = (afterTime - beforeTime)/1000;
System.out.println("시간차이(m) : "+secDiffTime);




- 출력 결과 -

1636142336 

시간차이(m) : 19

Posted by 꿈만은공돌
,