indy and tailc
John Rose
John.Rose at Sun.COM
Wed Jan 27 11:08:18 PST 2010
On Jan 27, 2010, at 8:10 AM, Thomas E Enebo wrote:
> (exact details of what is stored in permgen is fuzzy to me --
> some dictionary for class names and some internalized form of the
> class bytecode??)
It's a part of the heap; it contains mostly metadata, notably classes and methods. (It also has interned strings.) It is collectable via a full GC only (a walk over the whole heap).
Until recently, any managed pointer in the compiled code cache had to point into the permgen, so that scavenges (minor GC cycles) did not have to look at the code cache.
Because our heap is not "chunked", permgen cannot be grown. This, combined with the restriction about pointers in code, leads to the traffic jam.
(Ramki, did I leave anything out?)
> PS- John, do you know if permgen removal will make it into Java 6 in
> an update release?
We have decoupled the JVM from J2SE; note the different version numbers in "java -version" for JDK runtime (5-6-7) and VM (14-17).
Each new version of the VM gets installed in dot-releases of Java 6, as well as in the current OpenJDK 7.
-- John
More information about the mlvm-dev
mailing list