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. 안 쓰는 프로젝트 닫아 놓기
정도가 있겠습니다.
다시 한 번 말씀드리지만, 백업은 꼭 하셔야 합니다!
'웹개발 > 플러그인 (Eclispse)' 카테고리의 다른 글
[이클립스]CV는 그만! 나만의 스페셜한 자동 완성 기능 Template 활용 (0) | 2018.06.03 |
---|---|
[이클립스 플러그인] anyEdit 와 Scheduler (0) | 2018.05.23 |
[이클립스 플러그인]서버 재기동 없이 자바 파일 변경 내역 반영_jRebel (1) | 2018.05.22 |