With those heap setting, the JVM will always do a full collection, which you noticed. The
reason why: the JVM assumes the worst - that all objects in the young generation will
survive the collection. Thus all 3GB of the young gen objects will survive, but according
to your settings there is only 2GB available (5GB heap - 3GB young gen), thus a full
colleciton is required.
I recommend setting the MaxNewSize to a much smaller value, such as 200MB-400MB. It looks
like your collections are never freeing more than about 200MB anyway.
If I understand your app correctly, it allocates a lot of objects and then keeps them in
memory. Those objects will, after a few collections, reside in the old generation. From
that point on, the only objects in the young generation will be temporary objects which
you want to have cleaned up with a minor collection.
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4137605#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...