반응형
서비스를 구축하다보면 제일 중요한 부분이라고 생각한다.
Join을 진행한경우, 데이터양이 많은경우 특히 구동시간이 오래걸릴 수 있는데
이를 필수적으로 체크해봐야 한다!
페이지를 불러오는데 3초 넘게 걸리면 안된다.
long number1startTime = System.currentTimeMillis(); //시간 선언
System.out.println("number1startTime = " + number1startTime); //1구간
long number2StartTime = System.currentTimeMillis();
System.out.println("number2StartTime = " + number2StartTime); //2구간
long number3StartTime = System.currentTimeMillis();
System.out.println("number3StartTime = " + number3StartTime); //3구간
.
.
.
System.out.println(" 총 소요시간 = " + (number5StartTime - number1startTime));
System.out.println("5구간 - 4구간 = " + (number5StartTime - number4StartTime));
System.out.println("4구간 - 3구간 = " + (number4StartTime - number3StartTime));
System.out.println("3구간 - 2구간 = " + (number3StartTime - number2StartTime));
System.out.println("2구간 - 1구간 = " + (number2StartTime - number1startTime));
//구간별로 소요시간 구할수 있음
이부분은 차후 AOP로 추가해도 좋다!
@Aspect
@Component
public class ExecutionTimeAop {
@Around("@within(com.kb.medina.aop.ExecutionTimeChecker)")
public Object calculateExecutionTime(final ProceedingJoinPoint pjp) throws Throwable {
// 해당 클래스 처리 전의 시간
final StopWatch sw = new StopWatch();
sw.start();
// 해당 클래스의 메소드 실행
final Object result = pjp.proceed();
// 해당 클래스 처리 후의 시간
sw.stop();
final long executionTime = sw.getTotalTimeMillis();
final String className = pjp.getTarget().getClass().getName();
final String methodName = pjp.getSignature().getName();
final String task = className + "." + methodName;
JLog.logd("[ExecutionTime] " + task + "-->" + executionTime + "(ms)");
return result;
}
}
반응형
'IT 개발 > Java' 카테고리의 다른 글
Java - 대용량 데이터 엑셀다운로드 하기 (1) | 2024.07.23 |
---|