Search code examples
javapermgenjvm-arguments

In Java, the PermGen space is said to be "scaled 30% larger". Does this mean max is no longer necessary?


I recently had cause to look at the documentation for the -XX:MaxPermSize argument to the JVM.

Its documentation says in part:

5.0 and newer: 64 bit VMs are scaled 30% larger

Does this mean that MaxPermSize is obsolete for Java 1.5 and later virtual machines? Or, as I suspect, does this scaling information simply describe what happens up to the max?

(Actually, come to think of it, 30% of what?)


Solution

  • 64-bit JVM tends to use more memory because of bigger pointers. To alleviate this growth the default sizes of all memory areas in 64-bit JVM were increased. You can still override the defaults and use any values you want.

    Moreover, if you already use -XX:MaxPermSize, this change is completely irrelevant to you.