Hello guys
I'd like to ask whether using the if() construct in a pointcut for an around advice, give me a better performance or not?

I decompiled a woven class and saw:
    public void test() throws Exception
    {
        JoinPoint joinpoint = Factory.makeJP(ajc$tjp_0, this, this);
        if(TestAspect.ajc$if$806(ajc$tjp_0))
        {
test_aroundBody1$advice(this, joinpoint, ajc$test_TestAspect$localAspectOf(), null, ajc$tjp_0, joinpoint);
            return;
        } else
        {
            test_aroundBody0(this, joinpoint);
            return;
        }
    }

If I understand it correctly
    JoinPoint joinpoint = Factory.makeJP(ajc$tjp_0, this, this);
has biggest impact on a performance (except method body), but it is before
        if(TestAspect.ajc$if$806(ajc$tjp_0))
which is actually the test I wrote to the if() construct in TestAspect:

   Object around() throws Exception : testMethods() && if (...) {
        ..
   }

I would expect that the test will appear before Factory.makeJP and thus we gain a performance improvement by using the if() construct.

I don't know if I understand it correctly, but it seems to me that use of if() construct with around advice doesn't give me better performance at all.
Did I miss something? What do you think?

Peter
_______________________________________________
aspectj-users mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/aspectj-users

Reply via email to