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 Thilo,

Andy said that his changes were in as of 3/9 (see email
"Re: [aspectj-users] Webapp development and AJ", so your 3/6
build would not have it.  Also, Andy got his changes in (and
I think tagged the tree) before looking at some of the stuff
that Ron is doing, so it could be even better once those are
integrated.  So you can try it now.  I'm sure we'll do a 
comparison of [150, +Andy, +Ron/Andy] to see what helps, but
you're welcome to do the same.

Wes

> ------------Original Message------------
> From: Thilo Focke <thilo.focke@xxxxxxxxx>
> To: "Wes Isberg" <wes@xxxxxxxxxxxxxx>, aspectj-users@xxxxxxxxxxx
> Date: Thu, Mar-9-2006 11:53 PM
> Subject: Re: [aspectj-users] problems with load time weaving an d rmi communication
>
> Hi Wes,
> 
> i tried the development build aspectj-DEVELOPMENT-20060304114021.jar 
> (downloaded it on last Monday (March 6th)).
> 
> If you check in all your fixes, just give me a note. I´ll retry my 
> tests 
> then ;)
> 
> cu,
> Thilo
> 
> 
> Wes Isberg wrote:
> 
> >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
> >>
> >>    
> >>
> >
> >_______________________________________________
> >aspectj-users mailing list
> >aspectj-users@xxxxxxxxxxx
> >https://dev.eclipse.org/mailman/listinfo/aspectj-users
> >
> >  
> >
> 
> -- 
> EWE TEL GmbH
> Thilo Focke
> IP/IT-Systeme & Netze 
> Cloppenburger Strasse 310, D-26133 Oldenburg
> Telefon: +49 (0)441 8000-2863
> Telefax: +49 (0)441 8000-2799
> thilo.focke@xxxxxxxxx
> http://www.ewetel.de
> 
> _______________________________________________
> aspectj-users mailing list
> aspectj-users@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/aspectj-users
> 



Back to the top