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

Hi,
  This dev build seems to work for us; when will this one getting into the next version?

Thanks
Venkatesh Laguduva


On Sat, Aug 24, 2013 at 3:18 AM, Holger Hoffstätte <holger.hoffstaette@xxxxxxxxxxxxxx> wrote:
On Fri, Aug 23, 2013 at 2:51 PM, Venkatesh Laguduva <lbvenkatesh@xxxxxxxxx> wrote:

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?


There is a high probability that the weak refs are simply not being collected.

The JDK you are using is really, really old (you are missing 20+ updates!). Ignoring security concerns and other (pretty nasty) bugs in the JDK, a large number of JDK releases did not collect weak references correctly, timely, or sometimes at all.
If you are using the CMS garbage collector then you may or may not be a victim of various other bugs in that as well.

By default CMS also does not unload classes, so you should enable that as well (-XX:+CMSClassUnloadingEnabled). Otherwise your redeploys will leak perm gen. Then again, with such an old JDK it will probably not work anyway.. :)

In any case you should probably also use -XX:+ParallelRefProcEnabled so that weak reference processing doesn't run only on a single core - which might be one reason for the error you have been seeing, which basically says "Help! this is just way too much".

Hope this helps!

Holger


_______________________________________________
aspectj-users mailing list
aspectj-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/aspectj-users



Back to the top