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
_______________________________________________
mlvm-dev mailing list
mlvm-dev@openjdk.java.net
http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev

Reply via email to