[
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. Im 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
>