JVM메모리는 Java Heap space, Permenant Generation 이 존재합니다.
PermGen space는 JVM에서 관리하는 메모리 영역중 하나입니다.
Heap space는 프로그램 실행 도중 생성삭제 되는 Garbage-collected(필요없는경우 제거)입니다.
Permenant는 프로그램이 종료될때 까지 메모리를 차지하는 공간입니다.
Heap은 동적으로 메모리를 사용하게 되며 Permenant는 Class Names, internalized strings, Object등이 들어가며
PermGen도 이곳에 해당합니다.
java.lang.OutOfMemoryError: PermGen space의 해결책은 이클립스 실행시 메모리를 늘려주면 됩니다.
기본은 20M로 설정이 됩니다.
1. eclipse.ini 파일 설정.
javaw -vmargs -Xverify:none -XX:+UseParallelGC -XX:PermSize=64M -XX:MaxPermSize=128M -XX:MaxNewSize=32M -XX:NewSize=32M -Xmx512M
2. eclipse실행 파일.
C:\eclipse\eclipse-jee-ganymede-SR1-win32\eclipse\eclipse.exe -vm "C:\Program Files\Java\jre6\bin\javaw" -vmargs -XX:MaxPermSize=128m -Xms128m -Xmx512m
3. eclipse의 Java VM 옵션 용량 수정.
eclipse 사용시 : Window > Preferences > java > installend JREs > 사용중인 JRE선택 > edit > Default VM Arguments
기본방식
-XX:MaxPermSize=Permanent Generation의 최대용량(기본 용량은 64MB)
변경설정
-XX:MaxPermSize=128m
-출처 : Length 카페 ( http://blog.naver.com/onepromise01/150090741047 )