【问题标题】:AOP Performance issueAOP 性能问题
【发布时间】:2023-03-05 00:53:01
【问题描述】:

下面的代码会花费更多时间来降低整体应用程序的性能。

 @Aspect
 @Component
 public class LoggingHandler {

/**
 * Logger initialization.
 *
 */
private final Logger logger = LoggerFactory.getLogger(LoggingHandler.class);

/**
 * Around advise for SlingAdapterImpl.
 * @param pjp joinPoint
 * @return response
 * @throws Throwable exception
 */
@Around("execution(* com.abcd.oicp.storage.client.impl.SlingAdapterImpl.*(..))")
public Object logAroundAllMethods(ProceedingJoinPoint pjp) throws Throwable {

    long startTime = Calendar.getInstance().getTimeInMillis();

    Object obj = null;
    try {
        obj = pjp.proceed();
    } finally {
        logger.info("Method={} Time taken={} micro secs", pjp.getSignature().getName(),
                    (TimeUnit.MILLISECONDS.toMicros(Calendar.getInstance().getTimeInMillis() - startTime)));
    }


    return obj;
 }
}

在 JMeter 中,它消耗大约 1.5 秒。为什么?

时间是从毫秒转换为微秒吗? 性能问题。

提前致谢。

【问题讨论】:

    标签: aspectj spring-aop


    【解决方案1】:

    使用System.nanoTime() 或System.currentTimeMillis() 代替Calendar.getInstance().getTimeInMillis()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-13
      • 2015-12-01
      • 2010-09-30
      相关资源
      最近更新 更多