Skip to content

Latest commit

 

History

History
55 lines (34 loc) · 2.28 KB

Gradle Maven Java App 메모리 절약.md

File metadata and controls

55 lines (34 loc) · 2.28 KB

Gradle Maven Java App 메모리 절약

마이크로서비스 개발 환경을 로컬에 구축하고 진행할 때는 꽤 여러 개의 애플리케이션을 띄워놓고 작업하게 된다. 그냥 실행하면 각각 1기가 정도씩은 잡아 먹어서 16G 맥북을 쓰는데도 페이징 발생으로 버벅버벅..

굳이 IDE에서 실행할 필요 없는 애플리케이션, 예를 들면 개발이 끝났지만 discovery를 위해 반드시 실행해둬야 하는 서비스 레지스트리와 API게이트웨이는 굳이 IDE에서 실행할 필요 없으므로 터미널에서 실행하면 메모리를 덜 쓸 수 있다. 하지만 그렇다고 해도 옵션 없이 그냥 실행하면 환경마다 다르겠지만 Maven은 약 300메가, Gradle은 약 500메가 정도를 잡아먹고 Maven 이나 Gradle에 의해 실행되는 실제 애플리케이션도 약 1G 씩은 잡아먹는다.

그래서 옵션을 줘서 최대힙을 작게 지정하면 메모리 사용량을 확 줄일 수 있다. 물론 이렇게 하면 로딩 속도는 느려지지만 어차피 서비스 레지스트리나 API 게이트웨이는 껐다켰다 할 일 없이 주구장창 켜둘 놈들이므로 로딩 속도 느린 게 큰 불편을 주지는 않는다.

최대힙을 작게 지정하는 방법은 여러가지겠지만 다음과 같은 방법이 그나마 간단하다.

물론 아래의 설정 사항은 로컬에서만 적용되도록 프로파일이든 .gitignore 든 적당히 조치 필수

Maven

Maven에 의해 실행되는 애플리케이션의 최대 힙 지정

프로젝트루트/.mvn/jvm.config 파일에 다음과 같이 지정

-Xmx200m

Maven의 최대 힙 지정

Maven으로 애플리케이션 실행 시 다음과 같이 옵션으로 지정

SPRING_PROFILES_ACTIVE=local ./mvnw -Drun.jvmArguments="-Xmx80m"

Gradle

Gradle에 의해 실행되는 애플리케이션의 최대 힙 지정

프로젝트루트/build.gradle 파일의 bootRun 태스크에 다음과 같이 지정

...
    bootRun {
        ...
        jvmArgs = ["-Xmx200m"]
        ...
    }
...

Gradle의 최대 힙 지정

Gradle으로 애플리케이션 실행 시 다음과 같이 옵션으로 지정

SPRING_PROFILES_ACTIVE=local ./gradlew clean bootRun -Dorg.gradle.jvmargs='-Xmx100m'