I know what PermGen is, what it's used for, why it fails, how to increase it etc.
What I don't know is what PermGen actually stands for. Permanent... Gen... something?
Does anyone know what PermGen actually stands for?
-
Permanent Generation. See the java GC tuning guide for more details on the garbage collector.
-
Permanent Generation.
The garbage collector is known as a Generational garbage collector. Long lived objects wind up in the Permanent Generation.
Ivan Dubrov : This is not very true, I think. Permanent generation is for special kind of objects used by the JVM (class objects, method objects). Regular objects are never promoted to this generation, AFAIK.Calum : The above comment is correct; the permanent generation is for types that are considered to be "permanent", rather than just very long-lived. Of course this doesn't stop it being populated by classes, which can get collected if a classloader becomes unreachable.Tom Hawtin - tackline : Yup, this answer is talking about the tenured generation. -
If I remember correctly, the gen stands for generation, as in a generational garbage collector (that treats younger objects differently than mid-life and "permanent" objects). Principle of locality suggests that recently created objects will be wiped out first.
-
PermGen stands for Permanent Generation.
Here is a brief blurb on DDJ
-
Good description from the guy who knows a lot about GC internals. There are a plenty of useful GC-related info in his blog, by the way.
-
Permanent Generation. Details are of course implementation specific.
Briefly, it contains the Java objects associated with classes and interned strings. In Sun's client implementation whith sharing on,
classes.jsa
is memory mapped to form the initial data, with about half read-only and half copy-on-write.Java objects that are merely old are kept in the Tenured Generation.
-
Unfortunately, the answer chosen is wrong. PermGen is used by the JVM to hold loaded classes. You can increase it using:
-XX:MaxPermSize=384m
if you're using the Sun JVM
So if you get an OutOfMemoryException: PermGen you need to either make PermGen bigger or you might be having class loader problems.
0 comments:
Post a Comment