Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.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 OutOfMemoryError:压缩的类空间_Java_Memory Leaks_Java 8_Out Of Memory_Metaspace - Fatal编程技术网

Java OutOfMemoryError:压缩的类空间

Java OutOfMemoryError:压缩的类空间,java,memory-leaks,java-8,out-of-memory,metaspace,Java,Memory Leaks,Java 8,Out Of Memory,Metaspace,我得到了这个错误: "java.lang.OutOfMemoryError: Compressed class space" 在我弄清楚是什么触发之前,我试着 使用禁用压缩类指针 -XX:-使用压缩类指针。 但我还是犯了这个错误。怎么可能呢 谢谢 压缩类空间是元空间的一部分 看起来您的解决方案是增加最大元空间大小,或者您可能有一个泄漏的类加载器 通常,当Java堆中没有足够的空间分配对象时,会引发此错误。在这种情况下,垃圾收集器无法提供空间来容纳新对象,堆也无法进一步扩展。此外,当本机内存不

我得到了这个错误:

 "java.lang.OutOfMemoryError: Compressed class space"
在我弄清楚是什么触发之前,我试着 使用禁用压缩类指针

-XX:-使用压缩类指针。

但我还是犯了这个错误。怎么可能呢


谢谢

压缩类空间是元空间的一部分

看起来您的解决方案是增加最大元空间大小,或者您可能有一个泄漏的类加载器


通常,当Java堆中没有足够的空间分配对象时,会引发此错误。在这种情况下,垃圾收集器无法提供空间来容纳新对象,堆也无法进一步扩展。此外,当本机内存不足以支持加载Java类时,可能会引发此错误。在极少数情况下,当执行垃圾收集的时间过长且释放的内存很少时,可能会抛出java.lang.OutOfMemoryError。

此异常在以下章节中解释:

原因:在64位平台上,指向类元数据的指针可以用32位偏移量表示(使用
UseCompressedOops
)。这由命令行标志
UseCompressedClassPointers
(默认情况下为on)控制。如果使用了
UseCompressedClassPointers
,则可用于类元数据的空间量固定为
CompressedClassSpaceSize
。如果
UseCompressedClassPointers
所需的空间超过
CompressedClassSpaceSize
,将抛出一个
java.lang.OutOfMemoryError
,其中包含详细信息压缩的类空间

操作:增加
CompressedClassSpaceSize
或关闭
UseCompressedClassPointers
。注意:
CompressedClassSpaceSize
的可接受大小有界限。例如
-XX:CompressedClassSpaceSize=4g
,超过可接受的界限将导致消息(如CompressedClassSpaceSize为4294967296)无效;必须介于1048576和322225472之间


一些细节可能会有帮助,例如,显示增加最大元空间大小的选项。您的真正意思是“增加CompressedClassSpaceSize以关闭UseCompressedClassPointers”,还是说或关闭?从你其余的评论来看,情况似乎就是这样。只是想确定一下,为了未来的读者。