Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java的PERM区域_Java - Fatal编程技术网

Java的PERM区域

Java的PERM区域,java,Java,垃圾收集是否发生在Java堆的PERM区域 PERM区域用于存储有关类、方法、变量等的元数据。。。 还有在堆的PERM区域创建的字符串池,所以我相信这里不会发生垃圾收集?我相信理论上,如果类加载器是垃圾收集的,那么该类加载器加载的类可以被垃圾收集。这些类将在永久生成中。每次部署时,新的类对象将被放入永久生成中,从而占用越来越多的空间。无论您将PermGen空间扩大到多大,在部署足够多的空间后,它都将不可避免地达到顶点。你需要做的是采取措施冲洗永久性激素,这样你就可以稳定它的大小。处理此清理的JV

垃圾收集是否发生在Java堆的
PERM区域

PERM区域用于存储有关类、方法、变量等的元数据。。。
还有在堆的PERM区域创建的字符串池,所以我相信这里不会发生垃圾收集?

我相信理论上,如果类加载器是垃圾收集的,那么该类加载器加载的类可以被垃圾收集。这些类将在永久生成中。

每次部署时,新的类对象将被放入永久生成中,从而占用越来越多的空间。无论您将PermGen空间扩大到多大,在部署足够多的空间后,它都将不可避免地达到顶点。你需要做的是采取措施冲洗永久性激素,这样你就可以稳定它的大小。处理此清理的JVM标志有两个:

-XX:+CMSPermGenSweepingEnabled
此设置在垃圾收集运行中包括PermGen默认情况下,PermGen空间从不包含在垃圾收集中(因此会无限增长)。

-XX:+CMSClassUnloadingEnabled

此设置告知PermGen垃圾收集清理对类对象执行操作。默认情况下,类对象得到豁免,即使在garabage收集期间访问PermGen空间。

好问题的重复-我假设可以在丢弃其父类加载器时收集这些对象,但是我没有把它作为“答案”发布,因为我有点猜测。@Steve B-它和堆中的其他元素一样。所以它最终会被垃圾收集起来。