본문 바로가기
Java

[Java] Java 실행 옵션에 대해서 알아보자! (feat. GC)

by 왕타오 2023. 11. 21.

Java 실행 옵션이란? 

- 자바 프로그램을 실행시켜 주는 명령어.

 

명령어의 사용법은 아래와 같다.

$ java -help
Usage: java [options] <mainclass> [args...]
           (to execute a class)
   or  java [options] -jar <jarfile> [args...]
           (to execute a jar file)
   or  java [options] -m <module>[/<mainclass>] [args...]
       java [options] --module <module>[/<mainclass>] [args...]
           (to execute the main class in a module)
   or  java [options] <sourcefile> [args]
           (to execute a single source-file program)

 Arguments following the main class, source file, -jar <jarfile>,
 -m or --module <module>/<mainclass> are passed as the arguments to
 main class.

 

* options: 옵션

* mainclass: 호출될 클래스 파일 이름

 

options 중 몇가지를 알아보자! (자주 사용하거나, 사용하게 될 옵션들을 계속 해서 정리하자!)

1. --version

현재 JVM의 버전 정보를 출력한다.

 

2. -verbose:[class|module|gc|jni]

자바프로그램이 실행되는 정보를 화면에 출력한다.

-verbose:class

로딩되어지는 각클래스들의 정보를 화면에 출력한다.

-verbose:gc

garbage collection 이벤트를 화면에 출력한다.

-verbose:jni

native 함수들과 다른 자바 native 인터페이스 사용에 대한 정보를 출력한다.

 

3. -Xms, -Xmx

자바 프로그램 실행시 JVM이 사용가능한 최대 메모리 사이즈를 지정한다.

java -Xms <초기힙사이즈> -Xmx <최대힙사이즈>

 

 

실행 옵션으로 뭘 할 수 있을까? 

heap memory 사이즈를 작게 지정하고, GC의 이벤트를 콘솔에서 확인해보자!

 

아래의 명령어는 초기 힙 사이즈, 최대 힙 사이즈를 각각 20mb, 30mb 설정한 후 GC 이벤트를 화면에 출력하도록 하였다.

$ java -Xms20m -Xmx30m -verbose:gc GcTest.java

 콘솔에 출력된 정보를 확인해보면 

사용된 GC의 종류, GC 이벤트, GC 동작 전 힙 메모리, GC 동작 후 힙 메모리 등을 알 수 있다.

{Heap size before GC}M -> {Heap size after GC}M({Total Heap Size}M) {GC time}ms