본문 바로가기

웹개발/플러그인 (Eclispse)

[이클립스] eclipse.ini 수정하여 나의 이클립스 속도 개선을 해보자


Eclipse.ini란?

 이클립스 프로그램의 설정 파일으로, 이클립스가 실행될 때 이 파일을 훑고 지나가며 옵션들을 정합니다.

 이 파일을 약간 수정해 줌으로써 투박한 이클립스의 속도를 향상 시킬 수 있습니다.

 최신 버전인 oxygen은 속도가 조금 빨라진 것 같지만, Mars와 Neon은 oxygen 에 비해 정말 느립니다.
하지만 oxyzen을 지원하지 않는 플러그인을 사용하시는 등의 이유로 Mars와 Neon을 사용하신다면 속도의 차이를 체감하실 수 있겠습니다.

제가 체감한 속도 변화는 다음과 같습니다.

  • 구동 시간
  • UI 건드릴 때 속도
  • 서버 실행 및 응답 속도

위치

윈도우의 경우 eclipse 설치 폴더에 eclipse.ini라는 이름으로 들어 있고

Mac의 경우 이클립스 아이콘을 우클릭 - '패키지 내용보기' - Contents/MacOS 안에 있습니다.


파일을 수정 하기  전

 이 파일은 예민 하기에, 잘못 건드렸다간 이클립스가 켜지지 않는 불상사가 생길 수 있습니다.

 따라서 꼭 백업을 해 주시고, 뭔가 잘못되었다 싶으시면 백업한 파일을 그 자리에 돌려놓고 이클립스를 껐다 켜면 정상적으로 동작합니다.

 백업 파일으로 돌려놓았음에도 오류가 생긴다면 대부분 재부팅으로 해결되며, 그래도 해결되지 않는 경우 JVM의 경로 설정으로 다시 대부분을 해결할 수 있습니다.

파일 구조

이 파일은 설정 파일이기에 텍스트 에디터로 편집할 수 있습니다.

 eclipse.ini

 

-startup

plugins/org.eclipse.equinox.launcher_1.3.201.v20161025-1711.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.401.v20161122-1740
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
-showsplash
org.eclipse.platform
--launcher.defaultAction
openFile
--launcher.appendVmargs
{-vm 들어갈 자리}
-vmargs
{-설정할 부분들}


여기에서 작업 할 부분은 -vm, 그리고 -vmargs의 아랫부분입니다.

파일 수정

  •  -vm
C://java/jdk1.8.0_45/bin/java

이 옵션은 JVM의 버전을 설정해 줍니다. 
기본적으로 설정되기에 ini파일에 없을 수도 있습니다.


가끔 javaw.exe가 없다던지 하는 오류가 날 때 여기서 경로를 잡아주면 오류가 해결됩니다.

별다른 이유가 없다면 항상 최신으로 유지하는 것이 성능 향상에 도움이 되겠습니다.

  •  -vmargs

이 옵션은 -vm 뒤에 와야 합니다. 
이 뒤에 오는 옵션들은 JVM에 전해지는 값이기 때문입니다. 

  •  -Dosgi.requiredJavaVersion=1.8

자바 버전 설정입니다.

  •  -Xverify:none
이클립스가 실행될 때 클래스 검사를 생략하여 실행 시간을 줄여 줍니다.

  •  -Xquickstart
컴파일 속도을 향상시킵니다.
허나 장기 실행 어플리케이션에서는 속도가 느려지기 때문에 개발 장치, 테스트 장치 등에서 사용해야 한다고 합니다.

자세한 내용은 IBM의 링크를 참고하셔요.


  •  -XX:+UseG1GC
Java 7의 GC(가비지컬렉션) 옵션으로, 대용량의 힙을 사용하는 작업에서 프리징 현상을 잡아 준다고 합니다.

JDK 1.7.0_4 버전 이상에서 사용할 수 있습니다.

다른 개발자님의 말에 따르면, 이 옵션을 사용하기 전까지는 최적화된 GC를 찾기 위해 많은 노력을 해야 했는데, 적용 후 귀찮음이 주셨다고 합니다. 


※ 참고하시면 좋은 자료

- GC란?

- GC 튜닝의 이해 (JDK 1.7 이하) 


  •  -XX:-UseConcMarkSweepGC 
GUI를 빠릿하게 해준다고는 하는데 저는 체감이 잘 안 되더군요. 
가끔 오류도 나는 것 같습니다.

적용해보시고 나아지는 것 같다 싶으시면 사용하시면 되겠습니다.


  •  -XX:UseStringDeduplication
GC와 관련된 옵션으로 문자열의 중복을 제거해 메모리 소비를 감소시킨다고 합니다. 
UseG1GC와 함께 사용해야 합니다.

  •  -Xms2048m, Xmx2048m
이클립스가 작업을 수행할 때 필요한 힙메모리를 설정해 줍니다.

Xms는 최소, Xmx는 최대 메모리입니다.


 위 두 개 옵션의 숫자들을 똑같이 맞추어 주면 최대 메모리가 늘었다 줄었다 하며 생기는 부하를 방지할 수 있어 성능 향상에 도움이 된다고 합니다. 


 메모리 크기는 어느 정도로 하면 되냐하면, 다다익램이라고 하였습니다. 메모리가 커서 나쁠 게 없습니다.

 다만 사양에 맞지 않게 너무 크게 설정하면 오히려 프리징 현상이 생길 수 있으니 램이 허용하는 범위 내에서 적당히 크게 설정해 주시면 좋습니다.

(4GB이면 1024m정도를 설정하시는 것이 적합한 값이라고 합니다.)

상황에 따라 쓰시면 좋은 옵션

  •  -Xss
 
 스레드 한 개가 사용하는 메모리의 양입니다. 
대부분의 경우 설정하지 않고 기본값을 따르나, 많은 수의 스레드를 사용하는 경우 조절하시면 메모리 부하를 줄일 수 있습니다.

  •  -XX:NewSize=256m
  •  -XX:MaxNewSize=256m
 
 새로 생성된 객체(New Generation)들이 들어가는 메모리의 크기입니다.

 이 부분이 너무 크면 GC로 들어가는 횟수가 작아져 효율적인 처리가 힘들고, 너무 작으면 그것대로 문제가 생깁니다.

 이것과 전체 힙메모리가 1:2~1:4정도가 되게 세팅 후 상황에 맞게 최적화하시면 되겠습니다. 


Eclipse.ini 수정 외에 해볼 만한 것들


1. 문법, 철자 검사 끄기 (체감 확실히 됩니다.)

2. 안 쓰는 플러그인 삭제 또는 비활성화

3. 안 쓰는 프로젝트 닫아 놓기


정도가 있겠습니다.

다시 한 번 말씀드리지만, 백업 꼭 하셔야 합니다!