티스토리 뷰

JAVA

자바 성능 튜닝 정보 알아보기!

Aaron_h 2024. 1. 30. 16:54
반응형

구분 내용
-Djava.awt.headless 그래픽 사용자 인터페이스 (GUI)를 지원하는 환경에서 Java 애플리케이션을 실행할 때 사용됩니다. 이 설정은 화면이 없는 서버 환경에서 Java 애플리케이션을 실행할 때 유용합니다.
java.awt.headless 시스템 속성을 true로 설정하면, Java 애플리케이션은 그래픽 환경이 없는 "헤드리스" 모드로 실행됩니다. 이 모드에서는 그래픽 화면이 없기 때문에 그래픽 관련 작업을 수행할 수 없습니다. 대신, 이 모드에서는 그래픽 작업을 대신할 수 있는 대체 수단을 사용하게 됩니다.
이러한 설정은 주로 웹 서버, 배치 프로세스 또는 백그라운드 작업과 같이 그래픽 환경이 필요하지 않은 Java 애플리케이션을 개발하고 실행할 때 유용합니다. 이렇게 설정을 변경하려면 java.awt.headless 시스템 속성을 true로 설정하는 코드를 애플리케이션의 시작 부분에 추가하면 됩니다.
-Dfile.encoding Java 애플리케이션의 파일 인코딩(file encoding)을 설정하는 옵션입니다. -D 플래그를 사용하여 Java 애플리케이션 실행 시에 파일 인코딩을 지정할 수 있습니다.
파일 인코딩은 텍스트 파일의 문자를 컴퓨터에서 이해할 수 있는 이진 데이터로 변환하는 방식을 나타냅니다. Java 애플리케이션은 기본적으로 시스템의 기본 인코딩을 사용하며, 이를 file.encoding 시스템 속성을 사용하여 변경할 수 있습니다.
-server  java -server는 Java Virtual Machine (JVM)을 서버 모드로 실행하기 위한 옵션입니다. 이 옵션은 서버 환경에서 Java 애플리케이션을 실행할 때 최적화된 설정을 활성화합니다.
java -server 옵션을 사용하면 JVM은 서버 모드로 실행됩니다. 서버 모드에서는 JVM이 애플리케이션의 실행을 최적화하기 위해 여러 가지 기술과 알고리즘을 사용합니다. 이를 통해 애플리케이션의 성능을 향상시킬 수 있습니다.
java -server 옵션은 주로 대규모 서버 애플리케이션 및 웹 애플리케이션에서 사용됩니다. 서버 환경에서는 대량의 요청을 처리하고 응답 시간을 최소화해야 하므로, 성능과 최적화가 중요한 요소입니다.
java -server 옵션을 사용하여 JVM을 서버 모드로 실행하면, JVM은 애플리케이션의 실행을 더욱 효율적으로 관리하고 최적화할 수 있습니다.
-XX:+UseG1GC  -XX:+UseG1GC는 Java Virtual Machine (JVM)의 가비지 컬렉션(Garbage Collection) 알고리즘 중 하나인 G1(Garbage-First) GC를 사용하도록 JVM에 설정하는 옵션입니다.
가비지 컬렉션은 Java 프로그램에서 동적으로 할당된 객체들 중에서 사용되지 않는 객체들을 자동으로 해제하여 메모리를 관리하는 기능입니다. G1 GC는 JDK 7부터 도입된 가비지 컬렉션 알고리즘으로, 큰 힙 크기를 가진 애플리케이션에서 효율적인 가비지 컬렉션을 제공합니다.
-XX:+UseG1GC 옵션을 사용하여 Java 애플리케이션을 실행하면, JVM은 G1 GC를 사용하여 가비지 컬렉션을 수행합니다. 이를 통해 애플리케이션의 응답 시간을 향상시키고, 힙 메모리 사용량을 최적화할 수 있습니다.
G1 GC는 여러 가지 이점을 제공합니다. 예를 들면:
  • 애플리케이션의 응답 시간을 예측 가능하게 유지할 수 있습니다.
  • 대규모 힙 크기에서도 일관된 성능을 제공합니다.
  • 가비지 컬렉션 작업을 여러 개의 리전(Region)으로 분할하여 병렬로 처리하므로, 멀티코어 시스템에서 효율적으로 작동합니다.
  • 힙 영역의 동적인 크기 조정을 통해 메모리 사용량을 최적화하고, 가비지 컬렉션에 소요되는 시간을 최소화합니다.
-XX:+UseG1GC 옵션은 Java 7 이상에서 사용할 수 있으며, 기본적으로 사용되는 가비지 컬렉션 알고리즘인 CMS(Concurrent Mark-Sweep) GC 대신 G1 GC를 사용하도록 설정합니다.
하지만 -XX:+UseG1GC와 관련된 구체적인 사용 사례나 추가 정보를 제공하시면, 더욱 구체적인 도움을 드릴 수 있습니다.
-XX:+ScavengeBeforeFullGC  Java Virtual Machine (JVM)의 가비지 컬렉션(Garbage Collection) 동작을 제어하는 JVM 옵션 중 하나입니다. 이 옵션은 Full GC(전체 가비지 컬렉션)가 실행되기 전에 Young 영역의 가비지 컬렉션을 선행하는지 여부를 결정합니다.
Young 영역은 JVM의 힙(Heap) 영역 중 하나로, 새로 생성된 객체들이 할당되는 공간입니다. Young 영역의 가비지 컬렉션은 새로 생성된 객체들 중에서 사용되지 않는 객체들을 제거하는 작업을 수행합니다. Full GC는 Young 영역 외의 다른 영역(Old 영역 등)에서 사용되지 않는 객체들을 제거하는 작업을 수행합니다.
ScavengeBeforeFullGC 옵션을 사용하면 Full GC가 실행되기 전에 Young 영역의 가비지 컬렉션이 선행됩니다. 이를 통해 Young 영역에서 사용되지 않는 객체들을 먼저 제거하고, Full GC가 실행될 때 Young 영역의 크기를 줄일 수 있습니다. 이는 전체 가비지 컬렉션 실행 시간을 줄이고 애플리케이션의 응답성을 향상시킬 수 있습니다.
-XX:+DisableExplicitGC  DisableExplicitGC는 Java 애플리케이션에서 명시적으로 호출되는 가비지 컬렉션(Garbage Collection)을 비활성화하는 JVM 옵션입니다. 이 옵션을 사용하면 애플리케이션에서 System.gc()와 같은 명시적인 가비지 컬렉션 호출이 무시되고 실행되지 않습니다.
Java에서는 System.gc() 메서드를 호출하여 가비지 컬렉션을 요청할 수 있습니다. 하지만 명시적인 가비지 컬렉션 호출은 JVM에게 가비지 컬렉션을 수행하도록 강제하는 것이 아니며, 이에 대한 실행 여부는 JVM의 정책에 따라 결정됩니다.
DisableExplicitGC 옵션을 사용하면 애플리케이션에서 System.gc()와 같은 명시적인 가비지 컬렉션 호출을 무시하고 실행되지 않습니다. 이를 통해 애플리케이션의 가비지 컬렉션 동작을 더욱 예측 가능하고 일관성 있게 유지할 수 있습니다.
-XX:+HeapDumpOnOutOfMemoryError  HeapDumpOnOutOfMemoryError는 Java 애플리케이션에서 OutOfMemoryError(메모리 부족 오류)가 발생할 때 힙 덤프(Heap Dump)를 생성하는 JVM 옵션입니다. 힙 덤프는 메모리 상태를 스냅샷으로 저장하는 것으로, OutOfMemoryError가 발생한 시점의 메모리 상태를 분석하는 데 유용합니다.
OutOfMemoryError는 Java 애플리케이션이 사용 가능한 힙 메모리를 모두 소진하여 추가 객체 할당이 불가능한 상태를 나타냅니다. 이러한 상황에서 애플리케이션은 종료될 수 있지만, HeapDumpOnOutOfMemoryError 옵션을 사용하면 JVM은 OutOfMemoryError 발생 시 힙 덤프를 생성하고 애플리케이션을 종료하기 전에 해당 정보를 제공합니다.
-verbose:gc  -verbose:gc는 Java 애플리케이션에서 가비지 컬렉션(Garbage Collection) 이벤트에 대한 상세한 로그를 출력하는 JVM 옵션입니다. 이 옵션을 사용하면 애플리케이션이 실행되는 동안 가비지 컬렉션 작업에 대한 자세한 정보를 확인할 수 있습니다.
-verbose:gc 옵션을 사용하면 가비지 컬렉션 이벤트에 대한 로그가 표준 출력 또는 로그 파일에 출력됩니다. 이 로그에는 가비지 컬렉션의 유형, 수행 시간, 수집된 객체의 크기 등의 정보가 포함됩니다. 이를 통해 애플리케이션의 가비지 컬렉션 동작을 분석하고 최적화할 수 있습니다.
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함