Spring ini 파일 수정을 통한 최적화
문제점 😅
프로젝트를 나가면 보통 Spring(또는 Eclipse)을 사용하여 개발을 진행할텐데, 실행 시 로딩까지 오래 걸리면 심적으로 고생하는게 이만저만이 아니다. 특히 이번 프로젝트에는 협력사에서 노트북을 제공해주지 않아서 회사 개인 노트북을 지참해갔는데, PC 사양이 좋지 않아서인지 최적화의 필요성을 뼈저리게 느꼈다.
해결책 😏
현재 프로젝트에서는 Spring을 사용하므로, Spring으로 진행했다. 어차피 Eclipse도 동일하므로 상관없다! 프로그램을 설치한 경로로 가서 STS.ini(또는 Eclipse.ini) 파일을 열어보자.
-startup
plugins/org.eclipse.equinox.launcher_1.5.500.v20190715-1310.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.1100.v20190907-0426
-product
org.springsource.sts.ide
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
256M
-vm
C:/Program Files/ojdkbuild/java-1.8.0-openjdk-1.8.0.312-1/jre/bin/javaw.exe
-vmargs
-Dosgi.requiredJavaVersion=1.8
--add-modules=ALL-SYSTEM
-Dosgi.module.lock.timeout=10
-Dorg.eclipse.swt.browser.IEVersion=10001
-Xms1024m
-Xmx2048m
-Xverify:none
-XX:+UseParallelGC
-XX:+AggressiveOpts
-XX:-UseConcMarkSweepGC
-XX:+UseStringDeduplication
-XX:PermSize=128M
-XX:MaxPermSize=512M
-XX:NewSize=128M
-XX:MaxNewSize=512M
솔직히 뭐가 뭔지 잘 모르겠다. 검색해보며 정리만 해둔다.
-vm
C:/Program Files/ojdkbuild/java-1.8.0-openjdk-1.8.0.312-1/jre/bin/javaw.exe
이클립스에서 사용할 JDK.
-Dosgi.requiredJavaVersion=1.8
이클립스가 사용할 최소 버전의 JDK.
-Xms1024m
-Xmx2048m
이클립스가 사용하는 최소/최대 힙 메모리. 최소와 최대를 같은 값으로 설정하면 오르락 내리락 하지않아 빨라진다고 한다. 현재 내가 사용하는 PC의 메모리(RAM)은 16G이며 아래 내용은 참고만 한다.
- 1G 이하 PC -> Xms256m -Xmx256m
- 2G ~ 3G PC -> Xms512m -Xmx512m
- 4G 이상 PC -> Xms1024m -Xmx1024m
-Xverify:none
클래스 및 플러그인의 유효성 검사 생략으로, 구동속도 향상.
-XX:+UseParallelGC
병렬 가비지 컬렉션 사용으로, 병렬처리로 인한 처리속도 향상.
-XX:+AggressiveOpts
컴파일러의 소수점 최적화 기능을 작동시켜 빨라진다.
-XX:-UseConcMarkSweepGC
병행 mark-sweep GC 수행하여 이클립스 GUI의 응답을 빠르게한다.
-XX:+UseStringDeduplication
중복되는 String 인스턴스들을 Global Single Char[]로 관리하여 힙 메모리의 사용을 최적화.
-XX:PermSize=128M
-XX:MaxPermSize=512M
JVM 클래스와 메소드를 위한 공간이며 Out of Memory 발생시 크기 상향조절.
-XX:NewSize=128M
-XX:MaxNewSize=512M
새로 생성된 객체들을 위한 공간.
마무리 😎
Spring(또는 Eclipse) 설치 후 ini 파일을 열어 수정한다. 이후 툴 내부에서 몇 가지 최적화 설정까지 해주면 완료.
참고문헌 📝
https://devhj.tistory.com/3
https://unordinarydays.tistory.com/137