On Sep 14, 2009, at 10:07 AM, Quintin Beukes wrote:
Doesn't Sun have a GC on the PermGen? Or is it just low priority, meaning this won't happen on production servers. Even in a the common production host you deploy a lot. They might be further apart, but they are many none the less. And these servers are usually solid, meaning they don't fall over. I will easily reach 10 deployments without a server restart.
Yes, PermGen is GC'ed. However, if there is a ClassLoader memory leak, then a ClassLoader (and associated classes) can't be GC'ed, even though the application has been undeployed.
Though on my dev machine I have gone to about 20 deployments (around there - I just counted the log entries from server start while pressing page down the whole time and counted 18) before it gave a permgen. This was in a 2 hour period. If this is going to be a problem, is JRocket expensive?
I assume that JRockit stores class meta data in heap space. So, just means you have more storage for your class meta data, rather than specialized PermGen.
If you recreate your OOME PermGen with -XX: +HeapDumpOnOutOfMemoryError, we can help diagnose your problem. One of these days, I'll write a blog on this...
--kevan
