본문으로 바로가기

[JAVA] JVM 메모리 설정

category 프로그래밍/JAVA 2020. 4. 14. 13:12
728x90
반응형

원래 주로 사용하는 언어가 C이기 때문에 C로만 개발을 하다가, 최근에 JAVA로 개발을 하게 되었습니다.

무작정 할려하니 뭐부터 해야될지 몰라서 나름대로의 방식으로 언어를 습득하고 있습니다.

조금 손에 익게 되었고, 개발하다 보니 설정 파일에서 JVM 메모리 옵션에 대해 알게 되었습니다.

제가 스펙낮은 가상 장비에서 프로그램을 실행했다가 나는 에러를 보고 개념을 잡아야될것 같다고 생각했습니다.

그래서 이 부분에 대해서 정리를 하고자 합니다.

자바는 기본 메모리 설정 옵션이 존재합니다.

설정을 안했다면 기본값으로 되겠고, 장비의 스펙에 따라서 설정을 해주면됩니다.

JVM마다 다르겠지만, 보통 64MB가 기본값이라고합니다.

먼저 JVM 메모리의 구조를 살펴보겠습니다.

출처 : http://onemogin.com/java/gc/java-gc-tuning-generational.html

옵션의 예시는 아래와 같습니다.

"... -Xms128m -Xmx128m -XX:NewSize=64m -XX:MaxNewSize=64m -XX:PermSize=64m -XX:MaxPermSize=64m

-Xms : 자바 힙의 최초 크기

-Xmx : 자바 힙의 최대 크기

JVM에서는 최초 크기와 최대 크기를 같게 부여하도록 권장합니다.

아무래도 힙영역이기 때문에 동적으로 변하는 메모리의 오버헤드를 줄이기 위해서일거 같네요.

-XX:NewSize : 객체가 생성되어 저장되는 초기 사이즈

-XX:MaxNewSize : 최대 NEW 사이즈

-XX:PermSize : 초기 Perm 사이즈

-XX:MaxPermSize : Perm 최대 사이즈

이상입니다.

728x90
반응형

'프로그래밍 > JAVA' 카테고리의 다른 글

[JAVA] 파일 복사  (0) 2020.10.05
[JAVA] 문자열 붙이기  (0) 2020.09.23
[JAVA] Maven으로 build시 생성되는 파일명 변경  (0) 2020.04.13
[JAVA] Maven이란?  (0) 2020.03.03
[JAVA] DAO? DTO? VO?  (0) 2020.03.03