안녕하세요.
오늘은 이클립스 성능 최적화에 대해 알아보겠습니다.
주로 JVM 옵션 조정이 주가 됩니다.
타겟은 jdk 1.7 이상 권고 합니다.
eclipse/eclipse.ini 파일을 더블클릭하여 엽니다.
[힙 메모리 설정]
-Xms1152m (또는 자신의 메모리에 맞게 2048 등을 입력해도 된다. )
-Xmx1152m (또는 자신의 메모리에 맞게 2048 등을 입력해도 된다. )
자바는 힙메모리를 사용합니다. 힙메모리 설정에 따라 어플리케이션 성능이 많이 좌우되는데
힙메모리란 아래와 같습니다.
-> new 연산자로 생성된 객체와 배열을 저장하는 공간
-> 클래스 영역에 로드된 클래스만 생성가능
-> Garbage Collector를 통해 메모리 반환
- 클래스 영역에 로드된 클래스만 생성가능
- Garbage Collector를 통해 메모리 반환
출처: http://huelet.tistory.com/entry/JVM-메모리구조 [어떤공간]
- 클래스 영역에 로드된 클래스만 생성가능
- Garbage Collector를 통해 메모리 반환
출처: http://huelet.tistory.com/entry/JVM-메모리구조 [어떤공간]
그리고 힙 메모리는 아래와 같이 구성되어 있습니다.
New Object Space: 새로 생성된 객체를 위해 존재합니다. 다시 Eden, Survivor1, Survivor2로 세분화 되어 있습니다.
Old Object Space: 객체가 만들어진 후 오래된 객체들을 위해 존재하는 공간입니다.
Permanent Space: java class, method code 등이 저장되는 영역을 말합니다.
[GC설정]
-XX:+UseG1GC
위 내용을 설명하기 전에 garbage collection 및 Minor GC, Full GC를 설명하겠습니다.
자바는 JVM의 garbage collector라는 기능하는 친구가 있는데, garbage collection을 진행하는 과정 1이 Minor GC, 과정 2가 Full GC라고 합니다.
(속을 들여다 보면 더 깊은 내용이 있습니다)
각설하고, Minor GC때는 어플리케이션이 멈추지 않지만, Full GC때는 어플리케이션이 멈출수 밖에 없습니다.
위 G1GC는 2G 이상의 Heap을 사용하는 크리티컬한 어플리케이션에서는 Full GC 수행 시에 스레드가 멈추는 시간을 최소화 했다고 합니다.
위 설정은 이클립스 성능에 대한 얘기입니다.
아래 설정은 실제 어플리케이션을 띄웠을 때 WAS성능 입니다.
[이클립스 톰캣 JVM 옵션 조정]
서버탭의 Tomcat을 더블 클릭 -> open launch configuration을 클릭합니다.
VM Arguments 탭에 아래 내용을 추가합니다.
-Xms1024m -Xmx2014m -XX:+UseG1GC -XX:MaxPermSize=512m
Xms 및 Xmx는 힙 영역 메모리설정, UseG1GC는 Garbage Collection 정책설정 MaxPermSize는 Permanent 영역 사이즈 입니다.
출처: http://liebus.tistory.com/29 [liebus]
출처: http://liebus.tistory.com/29 [liebus]
출처: http://liebus.tistory.com/29 [liebus]
개발하는데 소소한 도움이나마 되었으면 좋겠습니다.
감사합니다.
참고자료
http://d2.naver.com/helloworld/1329
'개발환경 세팅' 카테고리의 다른 글
[리눅스] SVN 종료 스크립트 (0) | 2018.01.24 |
---|---|
[APM 툴] scouter 설치 가이드 (0) | 2018.01.23 |
윈도우 환경에 Nginx, mariadb, PHP를 Wnmp로 한번에 설치하기 (0) | 2017.08.26 |
리눅스에 tomcat8 설치하기 (0) | 2017.08.16 |
[linux] ubuntu에서 wget으로 jdk 설치하기 (0) | 2017.08.16 |