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