Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-users] org.aspect.* instances take almost 50% of heap in VM

>>  we are using weak/soft refs internally. Depending on how memory is being reported these may be shown in 'usage' stats but are really candidates for GC whenever the VM decides it wants to do so.

The heap dump I am looking at was created at the time of OutOfMemory error and 39% of heap was consumed by org.aspectj.* objects; OutOfMemory error was actually is this "java.lang.OutOfMemoryError: GC overhead limit exceeded' "; I am wondering, why did these org.aspectj.* objects were not picked by the GC when they were available? I am using Tomcat and JDK 1.6u26; It will be greate If I can make the GC to collect these org.aspectj.* objects. Is there a way to do that?

Thanks
Venaktesh Laguduva


On Mon, Aug 19, 2013 at 10:21 PM, Andy Clement <andrew.clement@xxxxxxxxx> wrote:
Sorry Venkatesh I was out on holiday for a few days.  Probably a couple of factors at play:

- we are using weak/soft refs internally. Depending on how memory is being reported these may be shown in 'usage' stats but are really candidates for GC whenever the VM decides it wants to do so.

- weavers exist for too many class loaders.  This is the JSP discussion you referenced in the other thread.  You mentioned the other thread but said you are using 1.7.3 which doesn't have the capability to exclude certain classloaders?   You need the changes from a dev build if you want to try it, see the bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=368046 that discusses the config options. A dev build containing the changes is here (AJ downloads page): aspectj-DEVELOPMENT-20130730075800.jar

You might want to turn on the diagnostics so you can see which classloaders are getting weavers which will help you determine the names of those you'd like to exclude.

cheers,
Andy



On 12 August 2013 23:38, Venkatesh Laguduva <lbvenkatesh@xxxxxxxxx> wrote:
Experts,
   Please do chime in with your thoughts.

Thanks
Venkatesh Laguduva


On Sun, Aug 11, 2013 at 12:43 AM, Venkatesh Laguduva <lbvenkatesh@xxxxxxxxx> wrote:
We have enabled LTW in our web app as it is required for a library used; we are using the latest version 1.7.3 but unfortunately, as soon as I start the tomcat, I see that almost 50% of the heap is consumed by org.aspect.* objects.
Class Name                                                                                    | Shallow Heap | Retained Heap | Percentage
-----------------------------------------------------------------------------------------------------
org.apache.catalina.loader.WebappClassLoader @ 0x1794fcc0|                           176 |   9,36,88,104   |     48.19%
|- org.aspectj.weaver.ltw.LTWWorld @ 0x17941c78                                  |          136 |   7,65,52,016 |     39.37%
|  |- org.aspectj.weaver.World$TypeMap @ 0x17cc6cd0                             |           40 |   7,64,98,456 |     39.35%
-----------------------------------------------------------------------------------------------------

I could sense this post http://dev.eclipse.org/mhonarc/lists/aspectj-users/msg13940.html comes very close to my problem but did not help since I am already on the latest version.

Thanks
Venkatesh Laguduva


_______________________________________________
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