When I say -Xmx=1024m
, does this include permgen i.e -XX:MaxPermSize=
is taken from these 1024m or it is separate?
Looking at this I thought that it takes from 1024m, but until now I had believed they were separate.
Due to the above problems, PermGen has been completely removed in Java 8. In the place of PermGen, a new feature called Meta Space has been introduced. MetaSpace grows automatically by default. Here, the garbage collection is automatically triggered when the class metadata usage reaches its maximum metaspace size.
Java Memory Model - Permanent Generation Note that Perm Gen is not part of Java Heap memory. Perm Gen is populated by JVM at runtime based on the classes used by the application. Perm Gen also contains Java SE library classes and methods. Perm Gen objects are garbage collected in a full garbage collection.
The PermGen area of the Java heap is used to store metadata such as class declarations, methods and object arrays. Therefore, the PermGen size requirements depend on the number of classes and methods as well as their size. Java memory is separated into different regions - Young, Tenured and PermGen.
PermGen stands for Permanent Generation. It is a special type of heap space. It is separate from the main memory (heap). JVM uses PermGen to keep track of loaded class metadata.
Nope, permGen space is in addition to main heap (latter capped via -Xmx on Sun VMs)
Permanent generation is a separate space allocated via -XX:MaxPermSize=
. This is in addition to the heap set with -Xmx
.
See the diagram at http://www.oracle.com/technetwork/java/gc1-4-2-135950.html#3.%20Sizing%20the%20Generations|outline "3. Sizing the Generations"
This shows the "Total Size" i.e. Xmx
does not count the Permanent generation.
And by the way, JDK 1.4 is quite old. Check the JDK 1.6 options and links for an updated view: http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With