[jboss-jira] [JBoss JIRA] Updated: (JBAOP-378) Repeated instantiation of pojo with per_instance aspects is slow with generated advisors

Kabir Khan (JIRA) jira-events at lists.jboss.org
Fri Mar 23 07:55:34 EDT 2007


     [ http://jira.jboss.com/jira/browse/JBAOP-378?page=all ]

Kabir Khan updated JBAOP-378:
-----------------------------

            Fix Version/s: 2.0.0.alpha5
    JBoss Forum Reference: http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4031020#4031020
              Description: 
<interceptor name="Int1" class="org.jboss.test.aop.stress.perinstancemethodinvocation.PerInstanceInterceptor" scope="PER_INSTANCE"/>

   <bind pointcut="execution(* org.jboss.test.aop.stress.perinstancemethodinvocation.POJO->method1())">
      <interceptor-ref name="Int1"/>
   </bind>


      public void execute(int thread, int loop) throws Exception
      {
         POJO pojo = new POJO();
         pojo.method1();
      }
	
Executing this loads of times is about 20 times slower with GA's than with Classic weaving. This is probably because for each new object, (Just working off memory here) if an object has per_instance aspects we then need to obtain a per_instance domain, populate the domain, redo all the bindings, and generate a unique joinpoint class for every single object. So I think we need to differentiate between cases where we actually have overridden something in the instance domain (i.e. dynamic aop) and where we are basically just inheriting everything from the parent. 


> Repeated instantiation of pojo with per_instance aspects is slow with generated advisors
> ----------------------------------------------------------------------------------------
>
>                 Key: JBAOP-378
>                 URL: http://jira.jboss.com/jira/browse/JBAOP-378
>             Project: JBoss AOP
>          Issue Type: Sub-task
>      Security Level: Public(Everyone can see) 
>            Reporter: Kabir Khan
>         Assigned To: Kabir Khan
>             Fix For: 2.0.0.alpha5
>
>
> <interceptor name="Int1" class="org.jboss.test.aop.stress.perinstancemethodinvocation.PerInstanceInterceptor" scope="PER_INSTANCE"/>
>    <bind pointcut="execution(* org.jboss.test.aop.stress.perinstancemethodinvocation.POJO->method1())">
>       <interceptor-ref name="Int1"/>
>    </bind>
>       public void execute(int thread, int loop) throws Exception
>       {
>          POJO pojo = new POJO();
>          pojo.method1();
>       }
> 	
> Executing this loads of times is about 20 times slower with GA's than with Classic weaving. This is probably because for each new object, (Just working off memory here) if an object has per_instance aspects we then need to obtain a per_instance domain, populate the domain, redo all the bindings, and generate a unique joinpoint class for every single object. So I think we need to differentiate between cases where we actually have overridden something in the instance domain (i.e. dynamic aop) and where we are basically just inheriting everything from the parent. 

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the jboss-jira mailing list