방치하기

Java 실행 시간 측정 StopWatch 본문

프로그래밍/Java

Java 실행 시간 측정 StopWatch

Yi Junho 2022. 1. 27. 19:56
반응형

그 동안 실행 시간이 필요하면, System.currentTimeMillis()를 사용해왔다.

Java 를 처음 배웠을때, 저 것을 사용하는 걸로 배웠고 Google 에서 ‘java 실행시간 측정’라는 키워드를 검색을 했을때도 System.currentTimeMillis()를 빼서 계산하는 방법이 쭈루룩 나왔기 때문에, 늘 하던대로 써오다가 하루는 검색어를 조금 다르게 입력했는지 StopWatch 라는 것이 나왔다. 그래서 사용해보니 만족스러워서 앞으로는 이걸로 쓸것 같고, 나같은 사람이 또 있을것 같아서 공유하게 되었다.

사용법은 Spring을 사용중이라면, org.springframework.util.StopWatch를 사용하고, spring을 사용하지 않는다면 org.apache.commons.lang3.time.StopWatch를 사용 하면 된다. 둘다 거의 비슷한데, Spring 이 조금 더 다양한 기능을 제공하는것 같다.

Spring의 StopWatch을 기준으로 설명하면 아래처럼 사용하면된다.

 

StopWatch stopWatch = new StopWatch("stopWatchId");
stopWatch.start("taskName");
... 테스트할 로직 ...
stopWatch.stop();
//출력 로직들 
System.out.println(stopWatch.prettyPrint()); //task 별로 상세하게 나옴
//간단하게 stopWatchId 기준으로, ns단위로 나오는데 이것저것 String에 나옴  
System.out.println(stopWatch.shortSummary()); 
//위에 shortSummary와 같은 값이 long으로 출력됨
System.out.println(stopWatch.getTotalTimeNanos());

stopWatch를 start할때 taskName을 설정하여, 육상 종목의 Lap타임을 측정하는 것처럼 하나의 StopWatch로 여러개의 측정이 가능하다.

apache stopwatch 가 궁그하시다면 위 링크로 자세하게 봐보세요: https://www.devj.co.kr/java-stopwatch-%ec%8b%a4%ed%96%89-%ec%8b%9c%ea%b0%84-%ec%b8%a1%ec%a0%95-%eb%b0%a9%eb%b2%95-3%ea%b0%80%ec%a7%80/

반응형
Comments