Akashic Records

Java HotSpot VM Options 본문

오래된글/Java

Java HotSpot VM Options

Andrew's Akashic Records 2018. 4. 7. 23:19
728x90

Java HotSpot VM Options

  • -X 옵션은 비표준옵션이다. “모든 VM에서 지원을 보장 하지 않는다” 뜻입니다. 향후 릴리즈에서는 언급없이 변결될수 있습니다.

  • -XX 옵션은 올바른 동작을 위해서는 특정한 시스템 요구사항이 필요하며 시스템 설정 파라미터에 접근할 권항ㄴ이 있어야 합니다. 임의의 사용자에 대해서는 비추천이면 이도 향후 릴리즈에서는 언급없이 변결될수 있습니다.

-XX:+VerifyBeforeGC

-XX:+VerifyAfterGC

-XX:+VerifyTLE

(J2SE 1.4 에서는 -XX:+VerifyTLAB )

-XX:+VerifyBeforeScavenge

-XX:+VerifyAfterScavenge

Heap의 무결성 검사

모두 debug시에만 사용가능

-Xmaxjitcodesize

최대 컴파일된 크기 지정

예전에는 -Xmaxjitcodesize=32m,

현재는 -Xmaxjitcodesize32m 사용

XX:+UseConcMarkSweepGC

동시 가비지 콜렉션을 수행한다.

1.4.1 부터 이용가능

-Xincgc

Train GC 사용

-Xnoincgc

Train GC을 사용하지 않는다. 기본값

-XX:MaxHeapFreeRation=<Maximum>

힙 여유 퍼센트 기본 70

-X:MinHeapFreeRation=<Minimum>

힙 여유 퍼센트기본 40

-Xint

JIT 컴파일 없이 인터프리더만

-XX:+UseBoundThreads

사용자 레벨 Thread 바인드 솔라리스에서만 사용

-Xmn<Size>

young generation 크기를 설정한다.

J2SE 1.4.0부터 이용가능하다.

-XX:+UseParallelGC

병렬 가비지 콜렉션 사용 J2SE 1.4.0부터

-XX:+UseAltSigs

Solaris 운영체제에서 VM은 디폴트로 SIGUSR1을 사용한다.

이것은 SIGUSR1을 시그널 체인(signal-chain) 하는 애플리케이션 과 충돌하는 경우

이 옵션은 SIGUSR1, SIGUSR2, 다른 시그널을 사용하도록 할 수 있다.

J2SE 1.4.1부터 Solaris 운영환경에서 이옳?수 있다.

-XX:+UseBoundThreads

이 옵션들은 쓰레드들과 결합되어 생성되어지도록 모든 쓰레드들에게 강제한다.

-XX:NewSize=<size>

-XX:MaxNewSize=<size> 1.3에서

-Xmn<size> 1.4에서

young generation resizing 불가능하게.

HotSpot에서 이와 같이 할때 단순하게 young generation의 사이즈를 상수로 설정한다.

-verbose:gc

gc 통계 수집의 형태를 여러가지로 변경

-XX:MaxInlineSize=<size>

인라인된 메소드안에서 바이트 코드 명령어들의 최대수

-XX:FreqInlineSize=<size>

인라인된 메소드에서 자주 실행되는 바이트 코드 명령어들의 최대수

-XX:+PrintInlining

디버그에서만 인라인된 메소드에 관하여 메시지를 출력한다.

-XX:DontYieldALotInterval=<ms>

디버기에서만 yield사이의 milliseconds 간격

-XX:-AllowUserSignalHandlers

솔라리스에서 어플리케이션이 signal handler을 설치 할때 거부하지 않는다.

-XX:AltStackSize=16384

솔라리스에서 Kbyte 단위로 시그럴 스택 사이즈를 대체한다.

-XX:+MaxFDLimit

솔라리스에서 파일 디스크립터의 수을 Max까지 이르게 한다.

-XX:MaxHeapFreeRatio=70

GC후 heap 여유공간이 줄어드는것을 피하기 위해 Maximum 퍼센트를 지정한다.

-XX:MinHeapFreeRatio=40

GC후 heap 여유공간의 확장을 피하기 위해 Minimum 퍼센트르르 지정한다.

-XX:-UseBoundThreads

솔라리스에서 커널 쓰레드를 사용자 쓰레드 레벨로 바인드 한다.

-XX:-UseLWPSynchronization

솔라리스에서 동기방식의 쓰레드 대신에 LWP기반을 사용하게 한다. 1.4.0 이상에서는 디폴트 설정이다.

-XX:+UseThreadPriorities

네이티브 쓰레드 우선순위 사용

-XX:MaxPermSize=64m

permSize의 크기 지정 GC 튜닝 참조

-XX:-CITime

1.4에서 JIT 컴파일러의 시간 소요

-XX:-PrintTenuringDistribution

보유 기간 정보를 출력한다.

-XX:TargetSurvivorRatio=50

Desired percentage of survivor space used after scavenge

-XX:-DisableExplicitGC

System.gc()을 호출하지 않고, 필요할때 JVM이 가비지 콜렉션을 수행한다.

-XX:CompileThreshold=10000

컴파일 또는 재컴파일 전에 메소드 호출/분기의 수 10,000 -server, 1,500 –client

-XX:MaxNewSize=32m

바이트로 새로 생성되는 최대 크기

현재 MaxNewSize를 결정하기 위해서 사용되어지는 NewRatio로써

1.3에서 32m sparc, 2.5m intel 이고 1.4서는 제안이 없다.

-XX:NewRatio=2

새로/이전의 generation 사이즈의 비율

sparc -server: 2, sparc -client: 4 (1.3) 8 (1.3.1+), intel: 12

-XX:NewSize=2228224

새로운 generation의 기본 사이즈 바이트로 sparc 2.125M, intel: 640k

-XX:ReservedCodeCacheSize=32m

예약된 코드 캐시 크기 바이트로 - - maximum code cache size. Solaris 64-bit: 1024m

-XX:SurvivorRatio=64

Ratio of eden/survivor space size

Solaris: 64, Solaris: 32 (on 1.3.1 and later), Linux/Windows: 8

-XX:ThreadStackSize=512

Thread Stack Size (in Kbytes) (0 means use default stack size)

Sparc: 512, Solaris Intel: 256, Sparc 64bit: 1024 all others 0

-XX:+UseTLE

-XX:+UseTLAB J2SE 1.4 에서

쓰레드 로컬 객체 할당 사용한다.

Sparc -server: true, all others: false

Xms256m

초기 힙사이즈 256M로 지정

-Xmx512m

멕스 힙사이즈 512M로 지정


  • CG정보 출력 옵션 예

-verbosegc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDetails



728x90

'오래된글 > Java' 카테고리의 다른 글

자바을 이용한 암호학 - 2  (0) 2018.04.07
자바을 이용한 암호학 - 1  (0) 2018.04.07
Java 8 Date/Time API  (0) 2018.04.07
Avoid J2EE data layer bottlenecks  (0) 2018.04.07
EJB 스팩별 비교표  (0) 2018.04.07
Comments