Java堆中的PERM区
是否会进行垃圾回收?
PERM区
用于存储有关类、方法、变量等的元数据...还有在堆的PERM区
中创建的字符串池,因此我认为这里不会发生垃圾回收?
Java堆中的PERM区
是否会进行垃圾回收?
PERM区
用于存储有关类、方法、变量等的元数据...还有在堆的PERM区
中创建的字符串池,因此我认为这里不会发生垃圾回收?
每次部署时,新的类对象会被放置在PermGen中,因此占用的空间会不断增加。无论您将PermGen空间设得多大,它都将在足够的部署后不可避免地达到顶峰。您需要采取措施清除PermGen,以便稳定其大小。有两个JVM标志可以处理此清理:
-XX:+CMSPermGenSweepingEnabled
这个设置将PermGen包含在垃圾回收中。默认情况下,PermGen空间永远不会被包括在垃圾回收中(因此无限增长)。
-XX:+CMSClassUnloadingEnabled
这个设置告诉PermGen垃圾回收扫描对类对象采取行动。默认情况下,即使在垃圾回收期间访问PermGen空间,类对象也会得到豁免。