Hello,

I am using AspectJ to log performance of code and want to minimize the
impact on code when profiling is disabled. I have decompiled some
AspectJ-woven code:
public int echo(int num) {
        int i = num;
        org.aspectj.lang.JoinPoint localJoinPoint =
org.aspectj.runtime.reflect.Factory
                        .makeJP(ajc$tjp_0, this, this, 
Conversions.intObject(i));
        return Conversions.intValue(echo_aroundBody1$advice(this, i,
                        localJoinPoint, aj.ScrapAspect.aspectOf(),
                        (org.aspectj.lang.ProceedingJoinPoint) localJoinPoint, 
i));
}


Basically, I want to forego the JoinPoint instantiation in the case of
profiling being disabled for a method by adding an if pointcut calling the
static Profiler.enabled() function /dependent on the name of the method/.

@Pointcut("(execution(* Print.ech*(int))) && args(i) && if()")
public static boolean pc(int i, JoinPoint.StaticPart
thisJoinPointStaticPart) {
        return
Profiler.enabled(thisJoinPointStaticPart.getSignature().getDeclaringTypeName());
}
@Around("pc(i)")
public Object profileMethods(ProceedingJoinPoint thisJoinPoint, int i)
        throws Throwable {
        return Profiler.profile(thisJoinPoint, i);
}


I saw  the bug request
<https://bugs.eclipse.org/bugs/show_bug.cgi?id=311749>   and was wondering
if it has been implemented.
Also, does my conditional pointcut really stop the join point instantiation
(because it is only using the static part)?



--
View this message in context: 
http://aspectj.2085585.n4.nabble.com/lazyTJP-optimization-for-around-advice-tp4650646.html
Sent from the AspectJ - users mailing list archive at Nabble.com.
_______________________________________________
aspectj-users mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/aspectj-users

Reply via email to