Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.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 eclipse下tomcat中的堆/PermGen设置问题_Java_Eclipse_Garbage Collection_Jvm_Permgen - Fatal编程技术网

Java eclipse下tomcat中的堆/PermGen设置问题

Java eclipse下tomcat中的堆/PermGen设置问题,java,eclipse,garbage-collection,jvm,permgen,Java,Eclipse,Garbage Collection,Jvm,Permgen,一位同事在Eclipse/Tomcat运行参数中有以下设置,并一直抱怨堆内存不足: -XX:PermSize=512M -XX:MaxPermSize=1024M -Xmx1024m 如果我理解正确,则max PermGen和max Heap都是1 GB。由于PermGen是堆的一个特殊部分,这相当于将所有堆分配给PermGen。这是正确的吗 也许我是对的。这会导致问题吗 佩尔,我的理解不正确。你说得对。>512MB用于PermGen和启用GC日志记录,一旦Eclipse再次崩溃,您将看到问题

一位同事在Eclipse/Tomcat运行参数中有以下设置,并一直抱怨堆内存不足:

-XX:PermSize=512M
-XX:MaxPermSize=1024M
-Xmx1024m
如果我理解正确,则
max PermGen
max Heap
都是1 GB。由于
PermGen
是堆的一个特殊部分,这相当于将所有堆分配给
PermGen
。这是正确的吗

也许我是对的。这会导致问题吗


佩尔,我的理解不正确。

你说得对。>512MB用于PermGen和启用GC日志记录,一旦Eclipse再次崩溃,您将看到问题的原因,日志将显示PermGen的大小

GC日志记录:
-XX:+UnlockDiagnosticVMOptions-XX:+LogVMOutput-XX:LogFile=jvm.log-XX:+HeapDumpOnAutofmemoryError-Xloggc:GC.log-XX:+PrintGCTimeStamps-XX:+PrintGCDetails-showversion

考虑到PermGen是否是堆的一部分,这实际上取决于您正在运行的热点的版本。GC算法控制PermGen的大小,因此即使您将MAX设置为1GB,它可能永远不会变大,并且由于其他一些问题,您仍然可以获得OOM