-
Spring Stop Watch 로직 속도 체크개인 공부/spring 2024. 8. 5. 20:18728x90반응형
🔴 StopWatch
spring에서 자체적으로 제공해주는 StopWatch 라이브러리로 간편하게 로직의 성능을 체크해볼 수 있다.
🟠 사용법
🟢 객체 만들기
import org.springframework.util.StopWatch; StopWatch stopWatch = new StopWatch(); stopWatch.start(); stopWatch.stop();
위와 같이 객체로써 받아오면 끝이다.
그리고 start와 stop으로 시간을 체크할 수 있다.
🟢 시간 체크하기
stopWatch.start("Task1"); stopWatch.stop(); stopWatch.start("Task2"); stopWatch.stop(); stopWatch.start("Task3"); stopWatch.stop(); log.info("stopwatch 결과 {}", stopWatch.prettyPrint()); log.info("stopwatch 총 걸린 시간 {}", stopWatch.getTotalTimeMillis());
위와 같이 stopWatch에 이름을 정해주고 start와 stop을 반복해주면 된다.
그리고 마지막으로 결과와 총 걸린 시간을 찍어서 눈으로 확인해볼 수 있다.
🟠 예시
🟢 실제 사용된 소스
public DeDuplicateTarget getDeduplicateTarget(Object data) throws Exception { StopWatch stopWatch = new StopWatch(); stopWatch.start("init"); // 기본 설정된 리스트 가져오기 ... 중복 인원 가져오는 로직 stopWatch.stop(); stopWatch.start("get duplicatedUserList"); // 제거할 리스트 가져오기 stopWatch.stop(); stopWatch.start("duplicatedUserList process"); stopWatch.start("get push list"); ... push list 가져오는 로직 stopWatch.stop(); stopWatch.start("remove reservation user"); ... 예약 인원 제거 로직 stopWatch.stop(); stopWatch.start("remove push user"); ... 푸시 발송 제거 stopWatch.stop(); stopWatch.start("get result push user"); // 발송될 유저 리스트 stopWatch.stop(); log.info("stopwatch 결과 {}", stopWatch.prettyPrint()); log.info("stopwatch 총 걸린 시간 {}", stopWatch.getTotalTimeMillis()); return DeDuplicateTarget.builder() .build(); }
결과는 다음과 같이 확인해 볼 수 있다.
현재 duplicated user list를 가져오는데 75프로의 시간이 걸리고 있어 해당 부분을 수정해야 된다는 걸로 볼수 있다.
혹여라도 api의 속도가 너무 느리거나 504 에러가 뜬다면 다음과 같이 로직의 속도를 체크해볼 수 있을것 같다!
728x90반응형'개인 공부 > spring' 카테고리의 다른 글
동시성 제어 [3] Redis (0) 2024.08.05 동시성 제어 [2] DB Lock (0) 2024.08.05 동시성 제어 [1] java 처리 (0) 2024.08.05 spring[19] Spring의 요청과 응답 과정 (0) 2021.06.19 spring[18] Response 응답 (0) 2021.06.19