일반적으로 경과 시간 또는, 실행은 이벤트의 시작 지점에서 종료 지점까지의 시간입니다. 다음은 Java에서 경과 시간을 찾는 다양한 방법입니다 -
- currentTimeMillis() 메서드는 현재 시간을 밀리초 단위로 반환합니다. 메소드의 경과 시간을 찾기 위해 원하는 메소드 실행 전후의 시간 값의 차이를 얻을 수 있습니다.
- nanoTime() 메서드는 현재 시간을 나노초 단위로 반환합니다. 메소드의 경과 시간을 찾기 위해 원하는 메소드 실행 전후의 시간 값의 차이를 얻을 수 있습니다.
- Instant 클래스의 now() 메서드는 현재 시간을 반환하고 Duration.between() 메서드는 주어진 두 시간 값 간의 차이를 반환합니다. 이를 사용하여 메서드를 실행하는 데 걸린 시간을 확인할 수 있습니다.리>
- Apache commons 라이브러리는 Stopwatch라는 클래스를 제공하며 start() stop() 및 getTime() 메서드를 제공하여 이를 사용하여 메서드 실행에 걸리는 시간을 확인할 수 있습니다.
- java.util.Date 클래스의 getTime() 메소드는 현재 시간을 반환합니다. 메소드의 경과 시간을 찾기 위해 원하는 메소드 실행 전후의 시간 값의 차이를 얻을 수 있습니다.
- getInstance().getTime().getTime() 을 사용하여 현재 인스턴스의 시간을 가져올 수도 있습니다. 차이를 구하여 경과 시간을 구한 후.
예:currentTimeMillis() 메소드 사용
public class Example { public void test(){ int num = 0; for(int i=0; i<=50; i++){ num =num+i; System.out.print(num+", "); } } public static void main(String args[]){ //Start time long begin = System.currentTimeMillis(); //Starting the watch new Example().test(); //End time long end = System.currentTimeMillis(); long time = end-begin; System.out.println(); System.out.println("Elapsed Time: "+time +" milli seconds"); } }
출력
0, 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78, 91, 105, 120, 136, 153, 171, 190, 210, 231, 253, 276, 300, 325, 351, 378, 406, 435, 465, 496, 528, 561, 595, 630, 666, 703, 741, 780, 820, 861, 903, 946, 990, 1035, 1081, 1128, 1176, 1225, 1275, Elapsed Time: 4 milli seconds
예:nanoTime() 메서드 사용
public class Example { public void test(){ int num = 0; for(int i=0; i<=50; i++){ num =num+i; System.out.print(num+", "); } } public static void main(String args[]){ //Start time long begin = System.nanoTime(); //Starting the watch new Example().test(); //End time long end = System.nanoTime(); long time = end-begin; System.out.println(); System.out.println("Elapsed Time: "+time); } }
출력
0, 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78, 91, 105, 120, 136, 153, 171, 190, 210, 231, 253, 276, 300, 325, 351, 378, 406, 435, 465, 496, 528, 561, 595, 630, 666, 703, 741, 780, 820, 861, 903, 946, 990, 1035, 1081, 1128, 1176, 1225, 1275, Elapsed Time: 1530200
예:Instant 클래스 사용
import java.time.Duration; import java.time.Instant; public class Example { public void test(){ int num = 0; for(int i=0; i<=50; i++){ num =num+i; System.out.print(num+", "); } } public static void main(String args[]) { //Starting time Instant start = Instant.now(); new Example().test(); //End time Instant end = Instant.now(); long time = Duration.between(start, end).toMillis(); System.out.println(); System.out.println(time+" Milli seconds"); } }
출력
0, 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78, 91, 105, 120, 136, 153, 171, 190, 210, 231, 253, 276, 300, 325, 351, 378, 406, 435, 465, 496, 528, 561, 595, 630, 666, 703, 741, 780, 820, 861, 903, 946, 990, 1035, 1081, 1128, 1176, 1225, 1275, 3 Milli seconds
예:StopWatch 클래스 사용
import org.apache.commons.lang3.time.StopWatch; public class Example { public void test(){ int num = 0; for(int i=0; i<=50; i++){ num =num+i; System.out.print(num+", "); } } public static void main(String args[]) { //Instantiating the StopWatch class StopWatch obj = new StopWatch(); //Starting the watch obj.start(); new Example().test(); //Stopping the watch obj.stop(); System.out.println(); System.out.println("Elapsed Time: "+obj.getTime() +" milli seconds"); } }
출력
0, 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78, 91, 105, 120, 136, 153, 171, 190, 210, 231, 253, 276, 300, 325, 351, 378, 406, 435, 465, 496, 528, 561, 595, 630, 666, 703, 741, 780, 820, 861, 903, 946, 990, 1035, 1081, 1128, 1176, 1225, 1275, Elapsed Time: 1 milli seconds
예:getTime() 메소드 사용
import java.util.Date; public class Demo{ public void test(){ int num = 0; for(int i=0; i<=50; i++){ num =num+i; System.out.print(num+", "); } } public static void main(String[] args) { long startTime = new Date().getTime(); new Demo().test(); long endTime = new Date().getTime(); long time = endTime - startTime; System.out.println("Execution time: " + time); } }
출력
0, 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78, 91, 105, 120, 136, 153, 171, 190, 210, 231, 253, 276, 300, 325, 351, 378, 406, 435, 465, 496, 528, 561, 595, 630, 666, 703, 741, 780, 820, 861, 903, 946, 990, 1035, 1081, 1128, 1176, 1225, 1275, Execution time: 5
예:캘린더 클래스 사용
import java.util.Calendar; public class Demo{ public void test(){ int num = 0; for(int i=0; i<=50; i++){ num =num+i; System.out.print(num+", "); } } public static void main(String[] args) throws InterruptedException { long startTime = Calendar.getInstance().getTime().getTime(); new Demo().test(); long endTime = Calendar.getInstance().getTime().getTime(); long time = endTime - startTime; System.out.println("Execution time: " + time); } }
출력
0, 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78, 91, 105, 120, 136, 153, 171, 190, 210, 231, 253, 276, 300, 325, 351, 378, 406, 435, 465, 496, 528, 561, 595, 630, 666, 703, 741, 780, 820, 861, 903, 946, 990, 1035, 1081, 1128, 1176, 1225, 1275, Execution time: 20