Java OutOfMemoryError:超出GC开销限制

Java OutOfMemoryError:超出GC开销限制,java,playframework,Java,Playframework,我似乎得到了这个例外: Execution exception InvocationTargetException occured : null play.exceptions.JavaExecutionException at play.mvc.ActionInvoker.invoke(ActionInvoker.java:239) at Invocation.HTTP Request(Play!) Caused by: java.lang.reflect.Invocatio

我似乎得到了这个例外:

Execution exception
InvocationTargetException occured : null

play.exceptions.JavaExecutionException
    at play.mvc.ActionInvoker.invoke(ActionInvoker.java:239)
    at Invocation.HTTP Request(Play!)
Caused by: java.lang.reflect.InvocationTargetException
    at play.mvc.ActionInvoker.invokeWithContinuation(ActionInvoker.java:557)
    at play.mvc.ActionInvoker.invoke(ActionInvoker.java:508)
    at play.mvc.ActionInvoker.invokeControllerMethod(ActionInvoker.java:484)
    at play.mvc.ActionInvoker.invokeControllerMethod(ActionInvoker.java:479)
    at play.mvc.ActionInvoker.invoke(ActionInvoker.java:161)
    ... 1 more
Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded
    at java.util.Arrays.copyOf(Arrays.java:2367)
    at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:130)
    at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:114)
    at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:415)
    at java.lang.StringBuilder.append(StringBuilder.java:132)
    at play.data.binding.Unbinder.unBind(Unbinder.java:106)
    at play.data.binding.Unbinder.unBind(Unbinder.java:63)
    at play.data.binding.Unbinder.unBind(Unbinder.java:110)
    at play.data.binding.Unbinder.unBind(Unbinder.java:110)
    at play.data.binding.Unbinder.unBind(Unbinder.java:63)
    at play.data.binding.Unbinder.unBind(Unbinder.java:110)
    at play.data.binding.Unbinder.unBind(Unbinder.java:110)
    at play.data.binding.Unbinder.unBind(Unbinder.java:63)
    at play.data.binding.Unbinder.unBind(Unbinder.java:110)
    at play.data.binding.Unbinder.unBind(Unbinder.java:110)
    at play.data.binding.Unbinder.unBind(Unbinder.java:63)
    at play.data.binding.Unbinder.unBind(Unbinder.java:110)
    at play.data.binding.Unbinder.unBind(Unbinder.java:110)
    at play.data.binding.Unbinder.unBind(Unbinder.java:63)
    at play.data.binding.Unbinder.unBind(Unbinder.java:110)
    at play.data.binding.Unbinder.unBind(Unbinder.java:110)
    at play.data.binding.Unbinder.unBind(Unbinder.java:63)
    at play.data.binding.Unbinder.unBind(Unbinder.java:110)
    at play.data.binding.Unbinder.unBind(Unbinder.java:110)
    at play.data.binding.Unbinder.unBind(Unbinder.java:63)
    at play.data.binding.Unbinder.unBind(Unbinder.java:110)
    at play.data.binding.Unbinder.unBind(Unbinder.java:110)
    at play.data.binding.Unbinder.unBind(Unbinder.java:63)
    at play.data.binding.Unbinder.unBind(Unbinder.java:110)
    at play.data.binding.Unbinder.unBind(Unbinder.java:110)
    at play.data.binding.Unbinder.unBind(Unbinder.java:63)
    at play.data.binding.Unbinder.unBind(Unbinder.java:110)
我的代码是:

"".equals(question.uniqueID)
其中问题是一个模型,唯一ID是一个字符串。我正在使用play framework 1.2.6,这完全出乎意料。所以是要求我写更多的文字,所以我正在努力

我的代码是:“.equals(question.uniqueID),其中question是一个模型,uniqueID是一个字符串

这与堆栈跟踪不匹配,所以我不认为这是OOME的原因

我正在使用play framework 1.2.6,这完全出乎意料


在任何系统中,你都可以在内存不足的情况下运行,特别是在像Play这样的高级系统中,所以这并非意外。首先,我会尝试将最大堆大小增加到至少1GB,如果不是16GB的话(如果有那么多的话)

启动程序时增加permgen空间-XX:MaxPermSize,以便消耗更多内存这看起来更像是一个play framework错误,而不是实际的堆空间问题。这个问题描述了错误的含义:是的,它与堆栈跟踪不匹配,但它发生在那一行上-当我调试并执行步骤时,这是它冻结10秒,然后给我一个例外。这是我注释掉的唯一一点,它再次开始工作。事实上,这当然是由play愚蠢的字节码增强引起的。@twihoX你能再试试堆吗?