자바 시간차 출력 - jaba sigancha chullyeog

자바에서 currentTimeMillis() 함수를 이용하면 간단하게 시간 차이를 구할 수 있다.

해당 메소드는 system 클래스에 포함되어 있어 별도로 선언할 건 없다.

프로그램이 시작하는 시점에 실행하고 종료 시점에 실행해서 각각의 차를 구하면 된다.

함수: System.currentTimeMillis();

예제 소스)

1. 시작 시점에 시간을 밀리 세컨드로 측정하고 - startTime

2. 5초간 실행했다고 가정하고

3. 종료 시점에 시간을 밀리 세컨드로 측정하고 - startTime

4. 마지막에 경과 시간을 미리 세컨드와 초로 출력

1

2

3

4

5

6

7

8

9

10

11

12

13

long startTime = System.currentTimeMillis();

try {

// 5초간 지연

Thread.sleep(5000);

catch (InterruptedException e) {

e.printStackTrace();

}

long endTime = System.currentTimeMillis();

System.out.println("Time in milliSeconds: " + (endTime - startTime));

System.out.println("Time in seconds: " + (endTime - startTime)/1000);

cs

결과는 

Time in milliSeconds: 5000

Time in seconds: 5

실행 시간이 5초로 잘 나왔다.


//시작 시간

long start = System.currentTimeMillis();

//내용

.

.

.

//끝 시간

long end = System.currentTimeMillis();

//시작 시간과 끝 시간의 차이

long time = (long) ((end - start) / 1000.0);

//결과 출력(000초)

System.out.println(time + "초");

java에서 로직의 수행시간을 출력하려면 System.currentTimeMillis() 메소드를 활용하면 됩니다.

System.currentTimeMillis() 는 "1970-01-01 00:00:00.000" 부터 현재까지 지난 시간을 밀리세컨드로 출력해줍니다.

2019년 10월 16일은 1970년 1월 1일부터  49년 10개월 15일이 지났습니다.

System.currentTimeMillis() 함수는, 

49년 10개월 15일을 년->월->일->시>분>초> 최종적으로 밀리초로 변환한 값을 우리에게 출력해주게 됩니다.

메소드 설명도 확인 할 수 있습니다.

프로그램의 실행시간은 해당 프로그램의 시작, 종료 시점에 각각 System.currentTimeMillis() 를 호출해

밀리세컨드값의 차이를 확인해보면 됩니다.

아래 예시 코드를 확인해보겠습니다.

for문 실행 전 start변수에 현재시간의 밀리세컨드 값을 저장합니다.

for문 실행 후 end변수에  for문종료시점의 밀리케선드 값을 저장합니다.

이렇게 되면 end의 값은 start보다 1970년으로부터 더 먼시간이기 때문에 

그 차이를 구하면 for문 시작후 얼마나 지났는지 확인 할 수 있습니다.

밀리세컨드초이기 때문에 1000으로 나눠주면, 실행시간을 초단위로 나타낼 수 있습니다.

1000, 60, 60, 24 ,365로 나눠나가면 분단위, 시단위 값도 구할 수 있겠네요.

package com.supercoding; import java.util.ArrayList; import java.util.Random; public class TimeCheck { public static void main(String[] args) { long start = System.currentTimeMillis(); ArrayList a = new ArrayList(); for(int i=0;i<10000000;i++){ a.add(new Random().nextInt()); } long end = System.currentTimeMillis(); System.out.println("start : " + start); //시작시간의 밀리세컨드 System.out.println("end : " + end); //종료시간의 밀리케선드 System.out.println( "실행 시간 : " + ( end - start )/1000.0 +"초"); //최종 실행시간 } }

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

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

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

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

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

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

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

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

- 사용 방법 -

long beforeTime = System.currentTimeMillis(); //코드 실행 전에 시간 받아오기

//실험할 코드 추가

long afterTime = System.currentTimeMillis(); // 코드 실행 후에 시간 받아오기

long secDiffTime = (afterTime - beforeTime)/1000//두 시간에 차 계산

System.out.println("시간차이(m) : "+secDiffTime);


- 사용 예시 -

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

Toplist

최신 우편물

태그