Android
이클립스의 Heap 메모리를 늘리기
aucd29
2013. 10. 1. 16:49
최초 이클립스의 Heap 메모리를 늘리기위해 검색하던중 나온 내용이다.
단순하게
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms64m
-Xmx256m
를
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms128m
-Xmx512m
로 수정을 했더니 Eclipse 가 구동되지가 않았다...
이건 왜 이런걸까???
그렇게 고민하다 아래와 같은 내용을 알게 되었고 해당 내용을 적용하니 Heap 메모리를 늘림과 동시에 속도도 향상된거 같다.
====================== 참고 사이트 원문(일부 수정됨) =======================
이클립스 속도 향상 (eclipse.ini 수정) - eclipse.ini 파일이 어디에 위치하는지 안다고 생각하고 진행함.
1) Before
-startup
plugins/org.eclipse.equinox.launcher_1.1.0.v20100507.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.1.R36x_v20100810
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
128M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
128m
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms64m
-Xmx256m
2) After
-startup
plugins/org.eclipse.equinox.launcher_1.1.0.v20100507.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.1.R36x_v20100810
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
128M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
128m
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xverify:none
-XX:+UseParallelGC
-XX:-UseConcMarkSweepGC
-XX:+AggressiveOpts
-XX:PermSize=128M
-XX:MaxPermSize=128M
-XX:MaxNewSize=128M
-XX:NewSize=128M
-Xms512m
-Xmx512m
3) 설명
-Dosgi.requiredJavaVersion=1.6 => JDK 1.6 이상을 설치했을 경우에 1.6으로 설정하면 속도가 빨라진다.
-Xverify:none => 클래스의 유효성을 검사 생략. (시작 시간이 줄어 빨라진다.)
-XX:+UseParallelGC => 병렬 가비지 컬렉션 사용. (병렬 처리로 속도 향상)
-XX:+AggressiveOpts => 컴파일러의 소수점 최적화 기능을 작동시켜 빨라진다.
-XX:-UseConcMarkSweepGC => 병행 mark-sweep GC 수행하여 이클립스 GUI의 응답을 빠르게한다.
-XX:PermSize=128M => Permanent Generation(영구 영역) 크기(Out Of Memory 에러시 크기 조절)
-XX:MaxPermSize=128M => 최대 Permanent Generation 크기
-XX:NewSize=128M => New Generation(새 영역) 크기
-XX:MaxNewSize=128M => New Generation(새 영역) 의 최대 크기
-Xms512m : 이클립스가 사용하는 최소 Heap 메모리
-Xmx512m : 이클립스가 사용하는 최대 Heap 메모리
최소와 최대를 같은 값으로 설정하면 오르락 내리락 하지않아 빨라진다.
혹시, 오류로 이클립스가 죽는다면 설정값을 한줄씩 지우거나 숫자를 변경해서 테스트 후 사용하기바람.
[메모리 정의 예]
1 기가 이하 메모리인 컴퓨터인 경우 => -Xms256m -Xmx256m
2 기가 ~ 3 기가 메모리인 컴퓨터 => -Xms512m -Xmx512m
4기가 이상 메모리인 컴퓨터 => -Xms1024m -Xmx1024m
[ 참고 ]
JVM 은 3가지 메모리 영역을 관리합니다.
1. Permanent(영구) 영역 : JVM 클래스와 메소드를 위한 공간. = PermSize 설정
2. New/Young 영역 : 새로 생성된 개체들을 위한 공간. = NewSize 설정
3. Old 영역 : 만들어진지 오래된 객체들의 공간.(New 영역에서 이동해 온다)