“永久世代”的简要定义:
“永久代用于保存VM本身的反射数据,例如类对象和方法对象。这些反射对象直接分配到永久代中,并且大小独立于其他代。”
[参考]
换句话说,这就是类定义的去处(这解释了为什么
OutOfMemoryError: PermGenspace在应用程序加载大量类和/或重新部署时可能会收到消息的原因)。
请注意,这 PermSize
是 -Xmx
用户在JVM选项上设置的值的附加功能。但是 MaxPermSize
允许JVM能够将其增长 PermSize
到指定的数量。最初,在加载VM时, MaxPermSize
仍将是默认值(代表32mb
-client和代表64mb
-server),但直到需要时才真正占用该数量。另一方面,如果将BOTH
PermSize和
MaxPermSizeBOTO 都设置为256mb,则会注意到总体堆增加了256mb
-Xmx。



