Programing

이클립스 성능 최적화

handam 2016. 11. 22. 20:36
반응형

1. 설정파일 수정


eclipse > eclipse.ini 파일을 수정하며, 아래 설정값을 자신의 사양에 맞춰 변경하여 사용한다. 세미콜론(;)은 주석이다.


; workspace의 경로를 윈도우 타이틀바에 출력
-showlocation

; 클래스 유효성 검사 생략, 그러나 나중에 어딘서 오류나는지 확인하기 위해 사용 추천
;-Xverify:none

; jdk 버전으로 설정하면 속도 향상
-Dosgi.requiredJavaVersion=1.6

;---------------------------------------------
; JVM 메모리 관리
;---------------------------------------------
; JVM 시작히 힙 영역 크기 : 최소(ms), 최대(mx)
-Xms64m
-Xmx1024m

; Permanent(영구) 영역 : JVM 클래스와 메소드를 위한 공간, 'Out of Memory' 에러 발생시 크기 조절 = PermSize
; New/Young 영역 :  새로 생성된 개체들을 위한 공간 = NewSize
; Old 영역 : 만들어진지 오래된 객체들의 공간(New영역에서 이동)
-XX:PermSize=64M
-XX:MaxPermSize=512M
-XX:NewSize=128M
-XX:MaxNewSize=512M

; Heap Shrinkage를 수행하는 임계치를 지정한다. 예를 들어 이 값이 70이면 Heap의 Free 공간이 70% 이상이 되면 
;Heap 크기가 축소된다. MinHeapFreeRatio 옵션과 함께 Heap의 크기 조정을 담당한다. 기본값 70

;-XX:MaxHeapFreeRatio=70 ;--------------------------------------------- ; Garbage Collection 방식에 따라 가능한 옵션 ;--------------------------------------------- ; 병렬 GC 사용 ; 메모리가 충분하고 코어수 많을때 유리하다. -XX:+UseParallelGC ; CMS GC 사용 ; 응답속도가 중요할때 사용한다. ; GC Pause에 의한 사용자 응답시간 저하 현상을 줄인다. -XX:-UseConcMarkSweepGC ;-XX:+CMSIncrementalPacing ; G1 GC(Garbage-First Garbage Collector) 사용 ; 성능은 좋지만 더욱 안정화가 되었을때 사용하는 것이 좋다. ; JDK 1.7.0_4 이후 사용하는것이 안정적 ;-XX:+UnlockExperimentalVMOptions ;-XX:+UseG1GC ;-XX:MaxGCPauseMillis=10 ;--------------------------------------------- ; out of space in codecache 오류 발생시 증가. 이 값은 permGenSpace 공간에 할당되므로 비례하게 커야한다. -XX:ReservedCodeCacheSize=128m ; 컴파일러의 소수점 최적화 기능을 작동시켜 빨라진다. -XX:+AggressiveOpts ; 개별 Thread의 Stack Size를 지정 ; 대부분 기본값 사용, 어플리케이션의 스레드 스택에 의한 메모리 요구향이 높아지면 'Out Of Memory' 에러 발생 -Xss4m -XX:+UseFastAccessorMethods -XX:CompileThreshold=20000


2. 소스 자동 폴딩 해제


Preferences > Java > Editor > Folding 에서 Enable folding 해제

혹은 Coffee Bytes Java Folding 플러그인으로 기능 확장



3. 코드 자동완성기능 해제


(자동으로 실행되는 것을 해제하고, ctrl+space를 사용해서 동작시킬 수 있다.)

Preferences > Java > Editor > Content Assist 에서 Auto Activation - Enable auto activation 해제



4. 오른쪽 하단에 메모리 사용상태 표시


Preferences > General 에서 Show heap status 체크



5. Spell checking 해제


Preferences > General > Editors > Text Editors > Spelling 에서 Enable spell checking 해제



6. 인코딩 변경


Preferences > General > Workspace 에서 Text file encoding 는 UTF-8, New text file line delimite 값은 사용환경에 따라 변경



7. 줄번호 사용(이클립스 루나버전 이후로는 기본값으로 설정)


Perferences > General > Editors > Text Editors 에서 Show line numbers 체크



8. 이클립스 실행속도 개선


실행할때 로딩되는 플러그인을 제외한다.

Preferences > General > Startup and Shutdown 에서 필요없는 것 제외



9. Validation 유효성체크 해제


자신이 사용할 부분만 켜서 사용한다.

Preferences > Validation



10. 불필요한 플러그인 삭제


1) Preferences > Install/Update 에서 Uninstall or update 선택

2) 불필요한 것 Uninstall



11. Autometic Update Off

Preferences > Install/Updates > Automatic Updates 에서 체크해제






After
-vmargs
-Dosgi.requiredJavaVersion=1.6
-Xverify:none
-XX:+UseParallelGC
-XX:-UseConcMarkSweepGC
-XX:PermSize=128M
-XX:MaxPermSize=128M
-XX:MaxNewSize=128M
-XX:NewSize=128M
-Xms512m
-Xmx512m




설명
-Dosgi.requiredJavaVersion=1.6 => JDK 1.6 이상을 설치했을 경우에 1.6으로 설정하면 속도가 빨라진다.

-Xverify:none => 클래스의 유효성을 검사 생략. (eclipse 실행 시작 시간 단축)
-XX:+UseParallelGC => Parallel Collector를 사용. 병렬 가비지 컬렉션 사용. (병렬 처리로 속도 향상)
-XX:+AggressiveOpts => 컴파일러의 소수점 최적화 기능을 작동시켜 빨라진다.
-XX:-UseConcMarkSweepGC => 병행 mark-sweepGC 기능을 수행하여 이클립스 GUI의 응답을 빠르게한다.
-XX:+CMSIncrementalMode=true => 점진적인 GC

-XX:PermSize=128M    => eclipse 클래스 로딩 기본 메모리
                       Permanent Generation(영구 영역) 크기(Out Of Memory 에러시 크기 조절)
-XX:MaxPermSize=128M  => eclipse 클래스 로딩 최대 메모리
-XX:NewSize=128M         => New Generation(새 영역) 크기
-XX:MaxNewSize=128M   => New Generation(새 영역) 의 최대 크기

-Xms512m : eclipse 실행시 잡는 최소 Heap 메모리
-Xmx512m : eclipse 실행시 잡는 최대 Heap 메모리
                   최소와 최대를 같은 값으로 설정하면 오르락 내리락 하지않아 빨라진다.

[PC메모리에 따른 메모리 정의 예]
1 기가 이하 PC  => -Xms256m -Xmx256m
2 기가 ~ 3 기가 PC  => -Xms512m -Xmx512m
4기가 이상 PC   => -Xms1024m -Xmx1024m

[ 참고 ]
JVM 은 3가지 메모리 영역을 관리합니다.
 1. Permanent(영구) 영역 : JVM 클래스와 메소드를 위한 공간. = PermSize 설정
 2. New/Young 영역 : 새로 생성된 개체들을 위한 공간. = NewSize 설정
 3. Old 영역 : 만들어진지 오래된 객체들의 공간.(New 영역에서 이동해 온다)



참고페이지 

1. http://hobakc.blogspot.kr/2014/05/eclipseini.html

2. http://blog.opid.kr/454

반응형