In Java 8, PermGen (i.e., the memory space defined by -XX:PermSize and –XX:MaxPermSize) is removed.
This change has come to SAP JVM:
2109745 – SAP JVM 4.1 Patch Collection 48 (build 4.1.048)
2109829 – SAP JVM 5.1 Patch Collection 82 (build 5.1.099)
2109726 – SAP JVM 6.1 Patch Collection 68 (build 6.1.073)
2109853 – SAP JVM 7.1 Patch Collection 25 (build 7.1.026)
It is mentioned:
The permanent generation (aka. PermGen) was removed. Classes metadata, previously stored in the permanent generation, has been moved to either native memory or the Java heap. This change does not impact the user. In fact, it simplifies the process of sizing the Java Virtual Machine’s memory generations. The parameters ‘PermSize’ and ‘MaxPermSize’ no longer need to be specified.
What is changed
Now the memory model is changed as below – simply removed the PermGen.
Where has the objects in PermGen gone?
- Class metadata will be moved to a new space called metaspace (in native memory, on OS, out of JVM).
- Interned strings and class statics will be moved to Java heap.
How are we affected
/* This section is mainly for SAP NetWeaver Java (EP, XI, BI, …) */
Perhaps you’ll ask (some did already): “Do we have to set larger heap size? It includes Perm now!”
- Legacy parameter –XX:PermSize and –XX:MaxPermSize will be ignored by JVM now.
- Generally VM parameters does not require further tuning.
- Class metadata is now out of JVM, hence there’s no need for tuning of VM parameter.
- Class statics usually takes very limited memory space, hence there’s little impact.
- In most cases, -XX:-StringInternTableInPermGen is already set. That means, the interned Strings are already in Java heap.
Hence you there’s no need for tuning either.
- The only exception is when -XX:-StringInternTableInPermGen is not set, plus significant amount of interned strings are used.
In this situation, heap size should be increased accordingly.
- Memory usage on OS level should not change significantly. I have contacted note owner of Note# 1824799 to see if an update is possible.
Hope this helps 🙂