Java的PERM区域
垃圾收集是否发生在Java堆的Java的PERM区域,java,Java,垃圾收集是否发生在Java堆的PERM区域 PERM区域用于存储有关类、方法、变量等的元数据。。。 还有在堆的PERM区域创建的字符串池,所以我相信这里不会发生垃圾收集?我相信理论上,如果类加载器是垃圾收集的,那么该类加载器加载的类可以被垃圾收集。这些类将在永久生成中。每次部署时,新的类对象将被放入永久生成中,从而占用越来越多的空间。无论您将PermGen空间扩大到多大,在部署足够多的空间后,它都将不可避免地达到顶点。你需要做的是采取措施冲洗永久性激素,这样你就可以稳定它的大小。处理此清理的JV
PERM区域
PERM区域用于存储有关类、方法、变量等的元数据。。。
还有在堆的PERM区域创建的字符串池,所以我相信这里不会发生垃圾收集?我相信理论上,如果类加载器是垃圾收集的,那么该类加载器加载的类可以被垃圾收集。这些类将在永久生成中。每次部署时,新的类对象将被放入永久生成中,从而占用越来越多的空间。无论您将PermGen空间扩大到多大,在部署足够多的空间后,它都将不可避免地达到顶点。你需要做的是采取措施冲洗永久性激素,这样你就可以稳定它的大小。处理此清理的JVM标志有两个:
-XX:+CMSPermGenSweepingEnabled
此设置在垃圾收集运行中包括PermGen默认情况下,PermGen空间从不包含在垃圾收集中(因此会无限增长)。
-XX:+CMSClassUnloadingEnabled
此设置告知PermGen垃圾收集清理对类对象执行操作。默认情况下,类对象得到豁免,即使在garabage收集期间访问PermGen空间。好问题的重复-我假设可以在丢弃其父类加载器时收集这些对象,但是我没有把它作为“答案”发布,因为我有点猜测。@Steve B-它和堆中的其他元素一样。所以它最终会被垃圾收集起来。