2012-08-09 1 views
2

Eclipse 3.6 개발 런타임에서 PermGen OOM을 얻었습니다. 필요한 시작 매개 변수를 추가하는 것을 잊어 버렸기 때문입니다. 내가 뭔가 잘못이라고 생각 것을 알았어 전에 그래서 JVisualVM을 발사하고 그것에서 다음 스크린 샷을 가지고 : 사용JVM PermGen 최대 값에 아직 도달하지 않은 경우에도

OOM Permgen

거의입니다 크기로 동일하지만 맥스는 여전히 약간 크다. Used가 Max가 아니라 Size에 가까워지면 OOM을 기대합니다. 내가 가진 유일한 모호한 설명은 JVM이 Max보다 큰 Used 공간의 2 배를 할당하려고 시도한다는 것입니다. 그러나 여전히 나는 코멘트에 감사 할 것입니다.

+0

나는 100 % 확실하지 않다, 그러나 나는 그들이 분리되어, Permgen가의 -Xmx하지 않을 생각합니다. 그래서 총 메모리는 적어도 Xms + Permgen입니다. – Christian

+0

예. 친구와 관련된 내용입니다 .http : //manojbardhan2009.blogspot.in/search/label/JVM%20Advance%20Setting –

답변

0

답변이 적절합니다. PermGen은 젊은 세대와 늙은 세대에 독립적입니다. Max는 모든 세대의 합입니다. 여기에 관한 기사입니다. http://www.freshblurbs.com/explaining-java-lang-outofmemoryerror-permgen-space

jdk는 PermGen의 기본 최대 값이 64 MG입니다. permGen을 넣는 것을 잊었다면 64 MG max가됩니다.

여기에서 복사 한 그림은 59 MG이며 거의 가득합니다. 그것은 당신이 이미 -XX을 변경 한 가정 당신의 permGen 최대가 MG

64 보여줍니다 또 다른 지표 :를 MaxPermSize

관련 문제