Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.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 堆转储显示可用空间时OOM_Java_Multithreading_Heap - Fatal编程技术网

Java 堆转储显示可用空间时OOM

Java 堆转储显示可用空间时OOM,java,multithreading,heap,Java,Multithreading,Heap,我有一个应用程序不断抛出OOM异常,但是当我查看堆转储时,总是有一些未使用的堆空间。有人知道为什么会这样吗?我在想,可能创建了一个导致OOM的对象,但它不会出现在堆转储中吗 编辑 设置: /usr/local/jre/bin/java-Xmx2048M-Xms2048M-server-XX:MaxPermSize=128M-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager-Djava.util.logging.con

我有一个应用程序不断抛出OOM异常,但是当我查看堆转储时,总是有一些未使用的堆空间。有人知道为什么会这样吗?我在想,可能创建了一个导致OOM的对象,但它不会出现在堆转储中吗

编辑 设置:
/usr/local/jre/bin/java-Xmx2048M-Xms2048M-server-XX:MaxPermSize=128M-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager-Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties-Dcom.sun.management.jmxremote-Dcom.sun.management.jmxremote.port=8998-Dcom.sun.management.jmxremote.ssl=false-Dcom.sun.management.jmxremote.authenticate=false-Djava.annowed.dirs=/usr/local/tomcat/common/annowed-classpath:/usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/commons-logging-api.jar-Dcatalina.base=/usr/local/tomcat-Dcatalina.home=/usr/local/tomcat-Djava.io.tmpdir=/usr/local/tomcat/temp/org.apache.catalina.startup.bootstrap开始

您是否可以发布您正在看到的确切错误消息(OOM)。您希望导致OOMError的对象如何出现在堆转储中?抛出了OOMError,因为堆中没有空间创建实例。至少如果OOMError是由堆耗尽引起的。请定义“一定数量的堆空间”。定义检查堆空间的方式和时间。同时,请发布传递给JVMOOM的所有标志,以防止VM中的多种内存空间耗尽,例如永久生成。