Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-users] problems with load time weaving an d rmi communication

Hi -

Thanks for the tests and the graphic displays - that's a lot of work.

How current was your development build?  The most-recent one now posted is
3/4 11:14, but Andy only checked in (some of?) his memory changes last week 
(3/4 2:42 p.m), so you might retry with the current HEAD or wait for a new
dev build.

It would be great if you retry your testing after Andy/Adrian have confirmed
that all their fixes are in.  I don't think that's the case, yet, but we'd
love it if you would check it out before we release 1.5.1.

(I realize it's not much help to say, hey, I think we're not done yet...)

Wes

P.S. - 
> can you explain me why it is necessary to register a new 
> classloader on each rmi request?

Isn't that a question for your RMI/serialization provider?  AspectJ doesn't
create class loaders.

> ------------Original Message------------
> From: Thilo Focke <thilo.focke@xxxxxxxxx>
> To: aspectj-users@xxxxxxxxxxx
> Date: Mon, Mar-6-2006 1:43 AM
> Subject: Re: [aspectj-users] problems with load time weaving an d rmi communication
>
> Hi guys,
> 
> first of all thank you for your answers.
> i did some testing with the aspectjweavers from aspectj final, from the 
> current development build and from Rods expermintal build from glassbox 
> inspector. The results are alarmingly different.
> 
> i did a little stress tests, that did about 3000 requests in a loop. 
> without rmi rmi communication there is no significant memory usage. with 
> rmi communication and rods development aspectjweaver i was able to send 
> nearly 3000 requests. the memory usage went up to 500 MByte. with the 
> aspectjweaver from the aspectj final build and from the actual 
> development build i was only able to send nearly 500 requests. the memory usage 
> went up to 500MByte and i got an out of memory error. rods experimental 
> build made a significant difference in memory usage.
> 
> i summarized my results on the following url: 
> http://www.webengineer.de/ltw.html
> there you can find some screenhots from jconsole i made during my 
> tests.
> 
> i also switched on the -verbose option in my aop.xml. as matthew 
> mentioned before, when using rmi communication there are created a lot of 
> class loaders. see the following i pasted from my tomcat console:
> 
> 06.03.2006 10:17:36 myTest.DummyServlet doThis_aroundBody4
> info AspectJ Weaver Version LTWExperimental built on Thursday Jan 26, 
> 2006 at 03:39:19 GMT
> info register classloader 
> weblogic.utils.classloaders.GenericClassLoader@18880287
> info using 
> file:/C:/Programme/apache-tomcat-5.5.12/shared/lib/pmon-1.0.0-SNAPSHOT.jar!/META-INF/aop.xml
> info register aspect de.pmon.PerformanceMonitor
> info weaving 'myTest/bean/Service_ee9ogc_HomeImpl_814_WLStub'
> info AspectJ Weaver Version LTWExperimental built on Thursday Jan 26, 
> 2006 at 03:39:19 GMT
> info register classloader 
> weblogic.utils.classloaders.GenericClassLoader@32211177
> info using 
> file:/C:/Programme/apache-tomcat-5.5.12/shared/lib/pmon-1.0.0-SNAPSHOT.jar!/META-INF/aop.xml
> info register aspect de.pmon.PerformanceMonitor
> info weaving 'myTest/bean/Service_ee9ogc_EOImpl_814_WLStub'
> 06.03.2006 10:17:36 myTest.DummyServlet doThis_aroundBody4
> 06.03.2006 10:17:36 myTest.DummyServlet doThis_aroundBody4
> info AspectJ Weaver Version LTWExperimental built on Thursday Jan 26, 
> 2006 at 03:39:19 GMT
> info register classloader 
> weblogic.utils.classloaders.GenericClassLoader@20872473
> info using 
> file:/C:/Programme/apache-tomcat-5.5.12/shared/lib/pmon-1.0.0-SNAPSHOT.jar!/META-INF/aop.xml
> info register aspect de.pmon.PerformanceMonitor
> info weaving 'myTest/bean/Service_ee9ogc_HomeImpl_814_WLStub'
> info AspectJ Weaver Version LTWExperimental built on Thursday Jan 26, 
> 2006 at 03:39:19 GMT
> info register classloader 
> weblogic.utils.classloaders.GenericClassLoader@22373430
> info using 
> file:/C:/Programme/apache-tomcat-5.5.12/shared/lib/pmon-1.0.0-SNAPSHOT.jar!/META-INF/aop.xml
> info register aspect de.pmon.PerformanceMonitor
> info weaving 'myTest/bean/Service_ee9ogc_EOImpl_814_WLStub'
> 06.03.2006 10:17:36 myTest.DummyServlet doThis_aroundBody4
> 06.03.2006 10:17:36 myTest.DummyServlet doThis_aroundBody4
> info AspectJ Weaver Version LTWExperimental built on Thursday Jan 26, 
> 2006 at 03:39:19 GMT
> info register classloader 
> weblogic.utils.classloaders.GenericClassLoader@25411170
> info using 
> file:/C:/Programme/apache-tomcat-5.5.12/shared/lib/pmon-1.0.0-SNAPSHOT.jar!/META-INF/aop.xml
> info register aspect de.pmon.PerformanceMonitor
> info weaving 'myTest/bean/Service_ee9ogc_HomeImpl_814_WLStub'
> info AspectJ Weaver Version LTWExperimental built on Thursday Jan 26, 
> 2006 at 03:39:19 GMT
> info register classloader 
> weblogic.utils.classloaders.GenericClassLoader@10284000
> info using 
> file:/C:/Programme/apache-tomcat-5.5.12/shared/lib/pmon-1.0.0-SNAPSHOT.jar!/META-INF/aop.xml
> info register aspect de.pmon.PerformanceMonitor
> info weaving 'myTest/bean/Service_ee9ogc_EOImpl_814_WLStub'
> 06.03.2006 10:17:36 myTest.DummyServlet doThis_aroundBody4
> 06.03.2006 10:17:36 myTest.DummyServlet doThis_aroundBody4
> 
> can you explain me why it is necessary to register a new classloader on 
> each rmi request?
> we planned to integrate the permormance monitoring in one of our 
> production systems. but as long as the memory increases on each rmi request 
> we think it is not a good idea to integrate it. currently we only use it 
> on our test systems (unfortunatley).
> 
> greetings,
> thilo
> 
> 
> 
> 
> Ron Bodkin wrote:
> 
> >Thilo,
> >
> >Just as a quick follow up, the AspectJ 1.5.0 release adds some 
> nontrivial
> >overhead per ClassLoader where you do weaving. When you are using RMI, 
> the
> >VM can create a lot of different ClassLoaders for reflective acessors.
> >
> >The experimental LTW version I pointed you at allows for sharing 
> aspect
> >definitions and AspectJ delegates between ClassLoaders where it is 
> safe (it
> >tests for nondelegation), so it should make a significant difference. 
> I
> >haven't yet created a patch for this optimization, since as Andy 
> noted, I'm
> >working with him to integrate some foundational memory improvements,
> >bringing them up to generally usable production quality :-)
> >
> >The same issue applies for JSP's, where many containers create a large
> >number of lightweight ClassLoaders and maintaining heavyweight weaving 
> state
> >for each results in major overhead.
> >
> >-----Original Message-----
> >From: aspectj-users-bounces@xxxxxxxxxxx
> >[mailto:aspectj-users-bounces@xxxxxxxxxxx] On Behalf Of Thilo Focke
> >Sent: Friday, March 03, 2006 8:06 AM
> >To: aspectj-users@xxxxxxxxxxx
> >Subject: Re: [aspectj-users] problems with load time weaving and rmi
> >communication
> >
> >Hi Matthew and Andy,
> >
> >1. The memory usage when using RMI without the aspect ist absolutely
> >constant and in acceptable ranges (about 30-40 MByte). The memory 
> usage
> >increases permanently when using the aspect. When using the aspect on 
> code
> >without RMI communication the memory usage is constant (about 
> 100MByte).
> >
> >2. IŽm using  AspectJ 1.5.0, released on 20th December, 2005
> >
> >3. My aop.xml looks like this
> >
> ><!DOCTYPE aspectj PUBLIC "-//AspectJ//DTD//EN"
> >"http://www.aspectj.org/dtd/aspectj_1_5_0.dtd";>
> ><aspectj>
> >    <weaver options="-proceedOnError -noWarn
> >-Xlintfile:META-INF/Xlint.properties">
> >        <include within="my.package..*"/>      
> >    </weaver>
> >    <aspects>        
> >        <aspect name="MyMonitor"/>
> >    </aspects>
> ></aspectj>
> >
> >Thanks a lot,
> >Thilo
> >
> > 
> >
> >
> >--------------->
> >
> >Thilo,
> >
> >Can I ask some questions:
> >1. What is the memory usage when you use RMI but not the aspect?
> >2. Which version of AspectJ are you using? We have made some 
> enhancements 
> >recently in memory usage.
> >3. Do you use -verbose in the weaver options of aop.xml? If so could 
> you 
> >post it. I think the problem might to do with creating lots of class 
> >loaders, each with a weaver and the accompanying footprint.
> >
> >Cheers
> >
> >Matthew Webster
> >AOSD Project
> >Java Technology Centre, MP146
> >IBM Hursley Park, Winchester,  SO21 2JN, England
> >Telephone: +44 196 2816139 (external) 246139 (internal) 
> >Email: Matthew Webster/UK/IBM @ IBMGB, matthew_webster@xxxxxxxxxx
> >_______________________________________________
> >aspectj-users mailing list
> >aspectj-users@xxxxxxxxxxx
> >https://dev.eclipse.org/mailman/listinfo/aspectj-users
> >
> >
> >_______________________________________________
> >aspectj-users mailing list
> >aspectj-users@xxxxxxxxxxx
> >https://dev.eclipse.org/mailman/listinfo/aspectj-users
> >
> 
> _______________________________________________
> aspectj-users mailing list
> aspectj-users@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/aspectj-users
> 



Back to the top