[
http://jira.jboss.com/jira/browse/JBAOP-378?page=all ]
Kabir Khan updated JBAOP-378:
-----------------------------
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 40-100 times slower (slower with more
bindings/methods in class) 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.
was:
<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 40-100 times slower (slower with more
bindings/methods in class) 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