알고리즘을 공부하다보면 내가 구현한 알고리즘의 속도를 알고싶을 때가 있다.
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.nanoTime(); //코드 실행 전에 시간 받아오기
//실험할 코드 추가
long afterTime = System.nanoTime(); // 코드 실행 후에 시간 받아오기
long secDiffTime = (afterTime - beforeTime)/1000000; //두 시간에 차 계산
System.out.println("시간차이(m) : "+secDiffTime);
(cpu 클럭에 따라 수행시간이 달라지는건 똑같은 듯 하다.)