본문 바로가기

IT 개발/Java

Java 구동 시간 체크

반응형

 

서비스를 구축하다보면 제일 중요한 부분이라고 생각한다.

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