2011-09-07 5 views
1

Java로 재생 기반 웹 응용 프로그램을 만들고 있습니다. 오류가 발생하면 다음 오류가 발생합니다.OutOfMemoryError occured : 재생 프레임 워크의 Java 힙 공간

Execution exception (In /app/controllers/Application.java around line 12) 
OutOfMemoryError occured : Java heap space 

play.exceptions.JavaExecutionException: Java heap space 
at play.mvc.ActionInvoker.invoke(ActionInvoker.java:227) 
at Invocation.HTTP Request(Play!) 
Caused by: java.lang.OutOfMemoryError: Java heap space 
at java.util.Arrays.copyOfRange(Arrays.java:3209) 
at java.lang.String.<init>(String.java:215) 
at java.lang.StringBuffer.toString(StringBuffer.java:585) 
at java.io.StringWriter.toString(StringWriter.java:193) 
at play.templates.GroovyTemplate.internalRender(GroovyTemplate.java:248) 
at play.templates.Template.render(Template.java:26) 
at play.mvc.results.RenderTemplate.<init>(RenderTemplate.java:24) 
at play.mvc.Controller.renderTemplate(Controller.java:657) 
at play.mvc.Controller.renderTemplate(Controller.java:637) 
at play.mvc.Controller.render(Controller.java:692) 
at controllers.Application.index(Application.java:12) 
at play.mvc.ActionInvoker.invokeWithContinuation(ActionInvoker.java:540) 
at play.mvc.ActionInvoker.invoke(ActionInvoker.java:498) 
at play.mvc.ActionInvoker.invokeControllerMethod(ActionInvoker.java:474) 
at play.mvc.ActionInvoker.invokeControllerMethod(ActionInvoker.java:469) 
at play.mvc.ActionInvoker.invoke(ActionInvoker.java:157) 
... 1 more 

누구나 알고 있거나 비슷한 문제가있는 경우 알려주세요.

+0

'play run your_app -Xss1m' – Jonas

+0

을 사용하면 더 많은 메모리가있는 앱을 실행할 수 있습니다. [Memory Leaks] (http://java.sun.com/developer/technicalArticles/J2SE/monitoring/) 애플리케이션을 프로파일 링해야합니다.) - 누수가없는 경우 메모리 양을 늘릴 수 있습니다. – oliholz

+0

Jonas와 olihoiz에게 답을 주시면 문제 해결에 도움이 될 것입니다. – Sapardi

답변

3

빠른 해결 방법은 JVM의 메모리를 늘리는 것입니다 (사용되는 JVM에 따라 달라지며 Oracle의 JVM은 -Xmx...m 옵션을 지원합니다. 여기서 ...은 최대 메모리를 메가 바이트 단위로 나타냄).

처음에는 JVM이 메모리를 너무 적게 차지할 수 있습니다. 그런 경우가 아니라면 메모리 사용량을 확인하는 것이 도움이 될 것입니다. jmap (힙 덤프 생성)과 jhat (힙 덤프 분석)을 사용합니다.

1

google-list에는 몇 달 전에 몇 가지 구문으로 그루비 템플릿 엔진에 많은 메모리가 필요하다는 지적이있었습니다. 나는 너에게 같은 문제가 있다고 가정한다.

0

가끔 이런 일이 생깁니다. @ Thomas의 대답은 더 나은 해결책이지만 빠른 수정이 필요한 경우 Play를 종료했다가 다시 시작하십시오.

관련 문제