2017-09-04 4 views
1

Le code ci-dessous prend plus de temps, ce qui réduit les performances globales de l'application.AOP Problème de performance

@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; 
} 
} 

En JMeter, il consomme ~ 1,5sec. POURQUOI?

Est le temps de conversion de milli secondes en micro secondes un problème de performance .

merci d'avance.

Répondre

0

utilisation System.nanoTime() ou System.currentTimeMillis() au lieu de Calendar.getInstance().getTimeInMillis()