Java VM 옵션

2008. 11. 11. 12:21Java

Java HotSpot VM Options
 
l        -X 옵션은 비표준옵션이다. “모든 VM에서 지원을 보장 하지 않는다뜻입니다. 향후 릴리즈에서는 언급없이 변결될수 있습니다.
l        -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로 지정
 
l        CG정보 출력 옵션 예
-verbosegc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDetails